diff options
author | wisberg <wisberg> | 2002-12-16 17:58:19 +0000 |
---|---|---|
committer | wisberg <wisberg> | 2002-12-16 17:58:19 +0000 |
commit | d842c4f1139629c1f062b74ba818d233b2c31043 (patch) | |
tree | 842d3871620bc0eb60edcd95e55804d67e0f61fa /docs/dist/doc/changes.html | |
parent | 3ce247199704eae6b2c92c6e38c69584e3250c52 (diff) | |
download | aspectj-d842c4f1139629c1f062b74ba818d233b2c31043.tar.gz aspectj-d842c4f1139629c1f062b74ba818d233b2c31043.zip |
initial version
Diffstat (limited to 'docs/dist/doc/changes.html')
-rw-r--r-- | docs/dist/doc/changes.html | 1502 |
1 files changed, 1502 insertions, 0 deletions
diff --git a/docs/dist/doc/changes.html b/docs/dist/doc/changes.html new file mode 100644 index 000000000..0d4d304fd --- /dev/null +++ b/docs/dist/doc/changes.html @@ -0,0 +1,1502 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<head> +<LINK rel="STYLESHEET" href="../style.css" type="text/css"> +<title>AspectJ 1.0.6 Reference -- Recent Changes</title> +</head> + +<body> + +<DIV ALIGN=right CLASS=copyrightNotice> +© Copyright 1998-2002 Palo Alto Research Center Incorporated. All rights reserved. +</DIV> + +<h1>Recent Changes in AspectJ 1.0</h1> + +<ul> + <li><a href="#1.0.6">1.0.6</a> (released 2002-07-24) + <ul> + <li><a href="#1.0.6compiler">Compiler</a></li> + <li><a href="#1.0.6ajde">AJDE</a></li> + <li><a href="#1.0.6ajdoc">Ajdoc</a></li> + </ul> + </li> + + <li><a href="#1.0.5">1.0.5</a> (released 2002-06-27) + </li> + + <li><a href="#1.0.4">1.0.4</a> (released 2002-04-17) + </li> + + <li><a href="#1.0.3">1.0.3</a> (released 2002-02-08) + </li> + <li><a href="#1.0.2">1.0.2</a> (released 2002-02-06) + </li> + <li><a href="#1.0.1">1.0.1</a> (released 2001-12-18) + </li> + <li><a href="#1.0.0">1.0.0</a> (released 2001-11-30) + </li> + <li><a href="#1.0rc3">1.0rc3</a> (released 2001-11-14) + </li> + <li><a href="#1.0rc2">1.0rc2</a> (released 2001-10-12) + </li> + <li><a href="#1.0rc1">1.0rc1</a> (released 2001-10-5) + </li> + <li><a href="#1.0beta1">1.0beta1</a> (released 2001-08-29) + </li> + <li><a href="#1.0alpha1">1.0alpha1</a> (released 2001-08-09) + </li> + <li><a href="#oldversions">Previous Versions</a></li> + <li><a href="porting.html">Porting and Transition</a></li> +</ul> + +<hr /> + +<h2><a name="1.0.6">1.0.6</a></h2> + +<p> This release contains mainly bug fixes for ajde and ajdoc. + +<h3><a name="1.0.6compiler">Compiler</a></h3> + +<p>We fixed a bug with switch statements, thanks largely +to Jason Rimmer's diligence in helping us isolate the problem. +Also, to help Log4J parse stack traces, we changed class file +symbolic line references to use [] instead of () for the +virtual start lines of each file. +</p> + +<h3><a name="1.0.6ajde">AJDE</a></h3> + +<p><b>AJDE Framework, AJBrowser, and AJDE for Forte/NetBeans</b></p> + +<p>The memory use of the structure model has been streamlined in order to reduce +footprint when working with large systems. Error tolerance has also been +improved for dealing with a structure model that is out of synch with resources +on disk.</p> + +<h4>AJDE for JBuilder</h4> + +<p>JBuilder 7 is now supported. All known bugs have been fixed including:</p> + +<ul> + <li><a href="http://aspectj.org/bugs/resolved?id=787">787</a> + AJDE for JBuilder throws exception given non-existent file</li> + <li><a href="http://aspectj.org/bugs/resolved?id=788">788</a> + Label too small in error message </li> + <li><a href="http://aspectj.org/bugs/resolved?id=789">789</a> + Index-out-of-bounds exception in JBuilder AJDE </li> + <li><a href="http://aspectj.org/bugs/resolved?id=792">792</a> + Required libraries disappear from JBuilder 6 </li> + <li><a href="http://aspectj.org/bugs/resolved?id=795">795</a> + Unable to compile open tools </li> + <li><a href="http://aspectj.org/bugs/resolved?id=802">802</a> + AJDE loses current (cursor) position in file when switching files </li> +</ul> + +<p>In addition, thanks to user feedback that indicated trouble building JBuilder +OpenTools with AJDE/JBuilder, the OpenTool is now being built with itself. </p> + +<h3><a name="1.0.6ajdoc">Ajdoc</a></h3> + <ul> + <li>Fixed <a href="http://aspectj.org/bugs/resolved?id=790">790</a> + aspect code comments suppressed by fix to bug 710 + </li> + <li>Known problems: <a href="http://aspectj.org/bugs/ajdoc"> + http://aspectj.org/bugs/ajdoc + </a></li> + </ul> + +<hr /> + +<h2><a name="1.0.5">1.0.5</a></h2> + + +<p>This release includes significant improvements to AspectJ Development +Environment (AJDE) support. The entire user interface has been revised and +streamlined. The AJDE features are more tightly integrated into JBuilder and +NetBeans/Forte support. JBuilder support now includes graphical configuration +file editing and an integrated AspectJ Browser tool. </p> + +<ul> + <li><a href="#1.0.5compiler">Compiler</a></li> + <li><a href="#1.0.5ajde">AJDE</a></li> + <li><a href="#1.0.5ajdoc">Ajdoc</a></li> + <li><a href="#1.0.5anttasks">Ant tasks</a></li> +</ul> + +<h3><a name="1.0.5compiler">Compiler</a></h3> + +<p> This was another compiler release primarily concerned with fixing +corner cases in the language implementation. Our handling of nested +classes, the assert statement, and cflow were the principal offenders +this time. Thanks to Nicholas Alex Leidenfrost and Patrick Chan for +their clear and concise bug reports on some of these issues. </p> + +<h3><a name="1.0.5ajde">AJDE</a></h3> + +<h4><span style="font-weight: 400">This release includes significant +improvements to AspectJ Development Environment (AJDE) support. All known bugs +have been fixed, and the core framework quality has been significantly increased +thanks to the adoption of a unit test suite. The following changes apply +to all of the AJDE NetBeans/Forte, JBuilder, and the AspectJ Browser support. +NetBeans/Forte and JBuilder-specific changes are listed below. </span></h4> + + +<ul> + <li><span style="font-weight: 400">The entire user interface has been revised + and streamlined.</span></li> + <li>The structure view and browser have a new UI, and offer both a file-based + and global structure views. All views expose node ordering, node + filtering, and association filtering functionality. The global views + expose a package tree as well as the global inheritance and crosscutting + structure. </li> + <li>Structure view navigation now has a history exposed by back/forward.</li> + <li>The is a new build configuration management UI.</li> + <li>The compiler preferences UI now includes access to all build options.</li> + <li>Error messages have been improved, and the structure views include + annotations of nodes with errors and warnings.</li> +</ul> + +<h4>AJDE for JBuilder</h4> + + +<p>Integration into the JBuilder IDE is more streamlined. In addition:</p> + + +<ul> + <li>The AspectJ Browser is included as a tool that replaces JBuilder's + "Project View" and can be used to navigate the global structure of your system + (including the crosscutting and inheritance structure).</li> + <li>Inline structure annotations in the editor's gutter can now expose all of + the structure presented in the structure view, and can be used to navigate in + a similar way. Note that there are preferences for toggling which of + these appear.</li> + <li>Building is better integrated and the JBuilder build toolbar is removed + when AJDE is enabled.</li> + <li>Build configurations can be selected from the build button's menu.</li> + <li>Execution is better integrated: instead of a separate "run" button + JBuilder's run and debug can be used. Note that for new projects you + will need to use the "AspectJ Runtime" library, which will be added to your + preferences automatically.</li> + <li>A new graphical build configuration editor can be used by double-clicking + ".lst" files that have been added to the project. </li> + <li>Error messages now match JBuilder's look-and-feel and behavior. + Seeking to column numbers now works in addition to line numbers.</li> +</ul> + + +<h4>AJDE for Forte/NetBeans</h4> + + +<p>Integration into the NetBeans IDE is more streamlined. In addition:</p> + + +<ul> + <li>NetBeans 3.3.2 and SunONE Studio 4 are supported.</li> + <li>Multiple filesystems are supported.</li> + <li>Default project build configurations (all project files) are now + supported.</li> + <li>Build configurations can be selected in the tool bar.</li> + <li>Regular NetBeans execution and debugging is supported. Note that you + have to add netbeans/lib/ext/aspectjrt.jar file to your project configuration.</li> + <li>Class files are generated beside source files (NetBeans/javac default). + There is currently no way to specify a target directory.</li> +</ul> + + +<h4>AJBrowser</h4> + + +<ul> + <li>The browser now supports main class execution. Set the main class in + the options dialog, and make sure that both the Java executable is on your + path, and the class that you expect to execute on your classpath.</li> + <li>The error messages UI has been improved.</li> +</ul> + + +<h3><a name="1.0.5ajdoc">Ajdoc</a></h3> +<p>Bug fixes: +</p> + <ul> + <li><a href="http://aspectj.org/bugs/resolved?id=710">710 - + compiler-generated constructor shown with class comment + </a></li> + <li><a href="http://aspectj.org/bugs/resolved?id=712">712 - + comments lost in aspect docs for methods + or constructors declared on other types. + </a></li> + <li><a href="http://aspectj.org/bugs/resolved?id=719">719 - + poor support for @link, @see tags + </a></li> + <li><a href="http://aspectj.org/bugs/resolved?id=742">742 - + crash with @see tag + </a></li> + <li><a href="http://aspectj.org/bugs/resolved?id=751">751 - + error loading doclet resource + </a></li> + </ul> + +<h3><a name="1.0.5anttasks">Ant tasks</a></h3> +<p>Bug fixes: +</p> + <ul> + <li><a href="http://aspectj.org/bugs/resolved?id=730">730 - + document all supported ajc flags <a></li> + </ul> + +<hr /> + +<h2><a name="1.0.4">1.0.4</a></h2> + +<ul> + <li><a href="#1.0.4compiler">Compiler</a></li> + <li><a href="#1.0.4ajde">AJDE</a></li> + <li><a href="#1.0.4ajdoc">Ajdoc</a></li> + <li><a href="#1.0.4taskdefs">Ant taskdefs</a></li> + <li><a href="#1.0.4doc">Documentation</a></li> +</ul> + +<h3><a name="1.0.4compiler">Compiler</a></h3> +<ul> + <li>Over a dozen people independently reported a bug in error + handling for the wrong number number of arguments to + <code>proceed</code>. This has been turned into a nice error + message. A number of other bug reports related to around advice and + proceed have also been fixed, including the ability to change the + bindings for <code>this</code> and <code>target</code> using proceed + in around advice. + </li> + <li>David Walend gets the <em>black thumb</em> award for the most + bug reports submitted by a new user. His bug report on the + behavior of after returning advice led to some valuable clarifications + of this part of the language spec. + </li> + <li>A number of places where ajc didn't fully comply with the Java + Language Spec have been fixed in this release. Thanks to Neal + Gafter for reporting many of these. + </li> +</ul> + +<h4>Incompatible changes</h4> + +<p>Two potentially surprising incompatible changes have been made to +ajc in order to bring the compiler into compliance with the 1.0 +language design. These changes will be signalled by clear warning or +error messages at compile-time and will not cause any run-time +surprises. We expect most users to never notice these changes.</p> + +<ul> + <li>The obsolete class + <code>org.aspectj.lang.MultipleAspectsBoundException</code> has been + removed from aspectjrt.jar. This class had not been used since + AspectJ-0.8 and should have been removed prior to the 1.0 release. + It is not documented as part of the 1.0 language spec. This change + will cause a compile-time type not found error in any code that + refers to this exception.</code> + + <li>The compiler was not correctly implementing the AspectJ-1.0 + language design for some uses of after returning advice. This + compiler behavior was fixed, and advice whose behavior might be + changed by this bug fix will be highlighted with a compiler + warning. More information about some of these changes can be found + in the <a href="porting.html#pre-1.0.4">porting notes</a>.</li> +</ul> + +<h3><a name="1.0.4ajde">AJDE</a></h3> + + +<p>This is the first release of AJDE support with significant external +contribution. A big thanks goes out to Phil Sager for porting the AJDE for +Forte/NetBeans support to NetBeans 3.3.1 and improving the integration into +NetBeans.</p> + + +<h4>AJDE for JBuilder</h4> + +<ul> + <li>Updates<ul> + <li>This is a bug fix release only. </li> + </ul> + </li> +</ul> + +<h4>AJDE for Forte/NetBeans</h4> + +<ul> + <li>Updates<ul> + <li>NetBeans 3.3.1 is now supported in addition to NetBeans 3.2 and Forte CE + 3.</li> + <li>Native NetBeans main class execution can now be used. After doing + a "Compile with AJC" browse to the main class in the "Filesystems" Explorer, + right-click the class and select "Execute". </li> + <li>The debugger can now be used if the project main class is set ("Project" + menu -> "Set Project Main Class...").</li> + <li>Numerous bugs have been fixed.</li> + </ul> + </li> + <li>Known limitations<ul> + <li>Breakpoint setting does not work in the debugger.</li> + <li>In the "Filesystems" Explorer red Xs appear on files with AspectJ source + code. The "AspectJ" Explorer understands the structure of AspectJ + projects and should be used for navigating structure instead.</li> + </ul> + </li> +</ul> + +<h4>AJDE for Emacs</h4> + + +<ul> + <li>This is a bug fix release only.</li> +</ul> + + +<h3><a name="1.0.4ajdoc">Ajdoc</a></h3> +<p>Ajdoc now runs under J2SE 1.4, but still requires the tools.jar + from J2SE 1.3 be on the classpath. +</p> + +<h3><a name="1.0.4taskdefs">Ant tasks</a></h3> +<ul> + <li>Repackaged to fit into the AspectJ product directory - e.g., + <code>aspectj-ant.jar</code> moved to <code>lib</code> + as expected by <code>examples/build.xml</code>. + </li> + <li>Fixed bugs, esp. <a href="http://aspectj.org/bugs/resolved?id=682">682</a>: + Throw BuildException if failonerror and ajdoc detects misconfiguration. + </li> +</ul> +<h3><a name="1.0.4doc">Documentation</a></h3> +<p>Added a 1-page quick reference guide. Improved javadoc documentation for + the org.aspectj.lang package. +</p> + + +<hr/> + +<h2><a name="1.0.3">1.0.3</a></h2> + +<ul> + <li><a href="#1.0.3compiler">Compiler</a></li> + <li><a href="#1.0.3taskdefs">Ant taskdefs</a></li> +</ul> + +<h3><a name="1.0.3compiler">Compiler</a></h3> +<p> This release fixes a single significant bug in 1.0.2 where ajc +could generate unreachable code in <code>-usejavac</code> or +<code>-preprocess</code> mode. This would happen when around advice +was placed on void methods whose body consisted solely of a +<code>while (true) {}</code> loop. We now properly handle the +flow-analysis for this case and generate code that is acceptable to +javac. Thanks to Rich Price for reporting this bug. +</p> + +<h3><a name="1.0.3taskdefs">Ant taskdefs</a></h3> +<p>Added support to the Ajc taskdef for the -source 1.4 and -X options generally. +</p> + +<hr /> + +<h2><a name="1.0.2">1.0.2</a></h2> + +<p> This release is mainly about keeping up with the Joneses. To keep +up with SUN's release candidate for J2SE1.4, we now officially support +the new 1.4 assertions and running on the 1.4 VM. In honor of the +public review of JSR-45 Debugging Support for Other Languages we +implement this spec for AspectJ. We support Borland's recent release +of JBuilder 6, and since some of our users are starting to work on Mac +OSX, AJDE now works nicely on this platform. We also fixed almost all of +the bugs you reported in 1.0.1. +</p> + +<ul> + <li><a href="#1.0.2compiler">Compiler</a></li> + <li><a href="#1.0.2ajde">AJDE</a></li> + <li><a href="#1.0.2ajdb">AJDB</a></li> +</ul> + +<h3><a name="1.0.2compiler">Compiler</a></h3> + +<ul> + <li>Official support for <code>-source 1.4</code> option to compile new + <a href="http://java.sun.com/j2se/1.4/docs/guide/lang/assert.html">1.4 assertions</a>. + This makes ajc completely compatible with j2se-1.4. + </li> + <li>Implementation of <a href="http://jcp.org/jsr/detail/45.jsp"> + JSR-45 Debugging Support for Other Languages</a> so that debuggers which + correctly implement this specification will be able to accurately debug + any AspectJ program at a source code level. We are not currently + aware of any debuggers that implement this so far, but expect that + as j2se-1.4 becomes widely available this will change. + </li> + <li>As proposed by Arno Schmidmeier and seconded by Nick Lesiecki, we now have an + experimental <code>-Xlint</code> option that will provide warnings when + type patterns used in pcds have no bindings. We are very interested in + feedback on the usefulness and suggested improvements for this feature. + </li> + <li>Several significant bugs in the implementation of around advice have been fixed. + These include issues with <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=632"> + dynamic tests</a>, with + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=620"> + complicated local types in an around body</a>, and with + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=636"> + capturing proceed in a closure</a>. + </li> + <li>All but two (<a href="http://aspectj.org/jitterbug/aspectj-bugs/compiler?id=626">1</a>, + <a href="http://aspectj.org/jitterbug/aspectj-bugs/compiler?id=645">2</a>) + verified bugs in 1.0.1 have been fixed. The two outstanding bugs + have relatively easy work-arounds. Thanks as usual to everyone who + submitted a bug report. + </li> + <li>We no longer use the <code>SYNTHETIC</code> attribute to label declarations + added by the aspectj compiler. We were using this attribute in compliance + with <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80128"> + the JVM Specification</a>; however, we've found that many tools expect + this attribute to only be used for the narrow purpose of implementing + Java's inner classes and that using it for other synthetic members can confuse + them. This led to problems both + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=649">with javap</a> and + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=646">with javac</a>. + </li> + <li>Changes required adding runtime classes, so please compile and run using the latest + <code>aspectjrt.jar</code> + </li> + +</ul> + +<h3><a name="1.0.2ajde">AJDE</a></h3> + +<p align="left">This is a bug fix release only. </p> + +<ul> + <li> + +<p align="left">Thanks to Dave Yost and Matt Drance for submitting the AJDE +patches for Mac OSX (context popup menus and keyboard shortcuts did not work). </p> + + </li> + <li> + +<p align="left">Bugs in history navigation (back-forward buttons in the +structure view) have been fixed.</p> + + </li> + <li> + +<p align="left">"Declares" are now handled properly in the structure view.</p> + + </li> + <li> + +<p align="left">Other GUI and usability improvements have been made the AspectJ +Browser and core framework.</p> + + </li> +</ul> + +<h4>AJDE for JBuilder</h4> + + +<ul> + <li>Support has been extended to JBuilder 6, and support for Enterprise + version features has been improved.</li> + <li>Fixed bug causing inline source code annotations in the editor pane to not + be updated after a recompile.</li> + <li>Keyboard shortcuts were fixed to work with Mac OSX.</li> +</ul> + + +<h4>AJDE for Forte</h4> + + +<ul> + <li>Keyboard shortcuts were fixed to work with Mac OSX.</li> +</ul> + +<h4><a name="1.0.2ajdb">AJDB</a></h4> + +<p> Some minor bug fixes, but this is still early-access software. + Please try using another JPDA-compliant debugger. If it uses + JDI correctly, then it should navigate to line numbers + when the classes are run under J2SE1.4, based on + the new JSR-45 debugging support described above. + We would appreciate any reports of success or failure. +</p> + +<hr /> + +<h2><a name="1.0.1">1.0.1</a></h2> + +<ul> + <li><a href="#1.0.1compiler">Compiler</a></li> + <li><a href="#1.0.1ajde">AJDE</a></li> + <li><a href="#1.0.1ajdb">AJDB</a></li> +</ul> + +<h3><a name="1.0.1compiler">Compiler</a></h3> + +<p> This release fixes a significant performance issue in the +compiler, reported by Rich Price, that could lead to extremely long +compiles in systems with many aspects and classes. Several other +small bugs related to reporting compilation errors have also been +fixed, see <a +href=http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=610>this +bug report</a> for an example. +</p> + +<p> A new experimental flag has been added, +<code>-XaddSafePrefix</code>, that will cause the prefix +<code>aspectj$</code> to be inserted in front of all methods generated +by ajc. This mode should be helpful when using aspectj with tools +that do reflection based on method names, such as EJB tools. Thanks +to Vincent Massol for pointing out the importance of this. It is +expected that this prefix will either become the default compiler +behavior in the future or a non-experimental flag will replace it. +</p> + + +<h3><a name="1.0.1ajde">AJDE</a></h3> + +<p align="left">Minor bug fixes, including: AJDE for JBuilder failed to preserve +application parameters from project settings when executing the application.</p> + +<p align="left">Source builds were cleaned up for JBuilder and Forte sources.</p> + +<h3><a name="1.0.1ajdb">AJDB</a></h3> + +<p>Two bugs were reported and have been fixed in this release. + (Note that ajdb is still considered early-access software.)</p> + +<ul> + <li>bug 611: NullPointerException dumping non-primitive values</li> + <li>bug 617: -X and -D options not passed to debug VM correctly</li> +</ul> + +<h2><a name="1.0.0">1.0.0</a></h2> + +<ul> + <li><a href="#1.0.0language">Language</a></li> + <li><a href="#1.0.0compiler">Compiler</a></li> + <li><a href="#1.0.0ajde">AJDE</a></li> + <li><a href="#1.0.0ajdoc">AJDoc</a></li> + <li><a href="#1.0.0taskdefs">Ant taskdefs</a></li> +</ul> + +<h2><a name="1.0.0language">Language</a></h2> + +<p>There were no language changes for this release.</p> + +<h2><a name="1.0.0compiler">Compiler</a></h2> + +<p>Several minor bugs primarily in error handling were reported and +have been fixed in this release. The two most serious bugs are +described below:</p> + +<ul> + <li>Niall Smart and Stephan Schmidt reported related bugs (variants + of which are also produced by other compilers) that caused verify + errors when dealing with nested try-finally and synchronized + statements. These are now fixed. More details are available + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=601"> + here</a> and + <a href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=595"> + here</a> + </li> + + <li>Jan Hannemann submitted a <a + href="http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=600"> + succint and clear bug report</a> for a difficult intermittant bug. + The bug led to the compiler sometimes generating illegal code when + introduced methods on a class overrode introduced methods on an + interface implemented by that class. This is now fixed.</li> </ul> + +<h2><a name="1.0.0ajde">AJDE</a></h2> + +<p align="left">Numerous user interface refinements were made to the browser and +core AJDE functionality. Error handling and reporting has been improved. +All of the AJDE tools now support the ".aj" file extension.</p> + +<h4>AJDE for JBuilder</h4> + + +<ul> + <li>The AspectJ Browser now uses JBuilder's icons and distinguishes nodes by + visibility.</li> + <li>Project-setting VM parameters are now supported by the "AJDE Run" button.</li> +</ul> + + +<h4>AJDE for Forte</h4> + + +<ul> + <li>The AspectJ Browser now uses Forte's icons and distinguishes nodes by + visibility</li> +</ul> + + +<h4>AJBrowser</h4> + + +<ul> + <li>Documentation for the browser is now available at + <a href="http://aspectj.org/docs">http://aspectj.org/docs</a> </li> +</ul> + + +<h4>Emacs Support: aspectj-mode and AJDEE</h4> + +<ul> + <li>Improved updating of annotations during editing.</li> + <li>Pop-up jump menu now placed (with mouse pointer) near cursor.</li> + <li>[AJDEE only] Improved filtering of legal code completions.</li> +</ul> + +<h4><a name="1.0.0ajdoc">AJDoc</a></h4> + +<ul> + <li>Runs only in J2SE 1.3 - not 1.2 or 1.4. + You can document 1.x-reliant programs by using the options + to compile using 1.x libraries.</li> + <li>Disabled some non-functioning options, documented as + <code>unsupported</code> in the syntax message.</li> +</ul> + +<h4><a name="1.0.0taskdefs">Ant taskdefs</a></h4> +<ul> + <li>Fork is not supported in the AJDoc taskdef</li> +</ul> + +<h2><a name="1.0rc3">1.0rc3</a></h2> + +<h2><a name="1.0rc3language">Language</a></h2> + +<p>There have been several minor clarifications/changes to the +language.</p> + +<ul> + <li>Thanks to Robin Green for suggesting that we could relax the + rules for inheriting multiple concrete members in order to allow + those unambiguous cases where one member has already overridden the + other. <a href=http://aspectj.org/pipermail/users/2001/001289.html> + More details...</a></li> + + <li>Ron Bodkin encouraged us to examine the details of privileged + aspects more closely. This led to several small improvements and + clarifications to this language feature. + <a href=http://aspectj.org/pipermail/users/2001/001258.html> More + details...</a></li> +</ul> + +<h2><a name="1.0rc3compiler">Compiler</a></h2> + +<p>This release saw several changes to the compiler in order to +work-around known bugs in different JVMs, or to otherwise mimic the +behavior of javac rather than necessarily following the Java Language +Specification.</p> + +<ul> + <li>Hanson Char reported a bug where ajc's correctly generated + bytecodes for some references to interface fields result in verify + errors on certain JVMs. While this is a known bug in those JVMs, + we've modified ajc to be bug compatible with all the other Java + compilers out there to work-around this JVM bug. + <a href=http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=551> + More details...</a></li> + + <li>Frank Hunleth discovered a similar bug where ajc's correct + bytecodes could lead to essentially random method dispath due to a + bad bug in the 1.3.0 JVM from Sun. Even though this bug was fixed + in the 1.3.1 and 1.2.2 JVMs, we have introduced the appropriate + work-around in ajc's code generation. <a + href=http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=580>More + details...</a></li> + + <li>Thomas Haug (as well as several other members of his group) + reported a problem with name binding where ajc was behaving + differently than javac. This problem was resolved to come from a + class created by an obfuscator that conflicted with his package + names. The JLS doesn't clearly specify which of these two behaviors + is correct. Nevertheless, ajc has been changed to treat packages + more like javac does in order to minimize this sort of problem in + the future. <a + href=http://aspectj.org/jitterbug/aspectj-bugs/resolved?id=574> More + details...</a></li> + + <li>Several "real" bugs in ajc were also reported and fixed. Toby + Allsopp gets credit for reporting two of them. The most interesting + of these bugs to me was his report that we just didn't support + qualified anonymous inner constructors. This is a part of the Java + language that ajc has never supported over its almost 3 year + history. We'd just noticed this ourselves when running the jacks + compiler test suite from the jikes group, and had added the feature + days before getting our first bug report for it not being + there.</li> +</ul> + +<h2><a name="1.0rc3ajde">AJDE</a></h2> + +<ul> + <li>The structure view has been improved. </li> + <li>Multiple user-configurable views are supported.</li> + <li>Structure tree filtering and ordering has been added. </li> + <li>A split tree mode has been added to permit the navigation of multiple + views on the same structure. </li> + <li>The view can also be toggled between a file-based and a system-based mode + which determines whether the root of the structure tree is the current file or + the project root. </li> + <li>The signatures of tree nodes have been improved and several new node + associations are now navigable. </li> + <li>A depth slider for controlling tree-expansion has been added.</li> +</ul> + +<h4>AJDE for JBuilder</h4> + + +<ul> + <li>Changes:</li> + <li>Inline annotations support have been improved and made consistent with the + structure tree (annotations only show up for intra-declaration structure).</li> + <li>The current structure view persists across IDE launches.</li> + <li>An enabled AJDE no longer slows down JBuilder shutdown.</li> +</ul> + + +<h4>AJDE for Forte</h4> + + +<ul> + <li>Execution remembers main class.</li> + <li>The bug causing an error during a "Mode" and "Explorer" switch has been + fixed.</li> +</ul> + + +<h4>AJBrowser</h4> + + +<ul> + <li>AJBrowser is currently an undocumented demonstration application. To use + it type: ajbrowser <lst file1> <lst file2> ...</li> + <li>Multiple source locations can be shown by selecting multiple nodes and + right-clicking to select the "Display Sources" command.</li> +</ul> + + +<h4>Emacs Support: aspectj-mode and AJDEE</h4> + +<ul> + <li>Numerous jump-menu improvements, including operation of pop-ups.</li> + <li>For AJDEE, compatibility with JDEE 2.2.9beta4. Also, fixes in completion, + ajdoc launch, and speedbar.</li> +</ul> + +<h3><a name="1.0rc3ajdoc">AJDoc</a></h3> + +<p>Some of the more obvious NullPointerException bugs in Ajdoc were fixed, but +Ajdoc does not implement all the functionality of Javadoc and has some bugs:</p> +<ul> + <li>Split indexes do not work correctly</li> + <li>Inner classes are not listed in indexes </li> + <li>Synthetic methods are documented</li> + <li>There is no package frame even when packages are specified on the command line</li> + <li>-group option is not implemented</li> + <li>-use targets are not all calculated correctly</li> + <li>Exception information may not be printed for the @throws tag</li> + <li>Verbose output should go to stderr, not stdout</li> + <li>Extra links are generated (should be unlinked text) </li> +</ul> +<p>Further, Ajdoc has not been testing on variants of the J2SE (it uses javadoc classes). + +<h3><a name="1.0rc3taskdefs">Ant taskdefs</a></h3> +<p>The Ajc taskdef was updated to support the new compiler options and the .aj extension, +and some NullPointerException bugs were fixed (thanks to Vincent Massol for a bug +report listing the line number of the fix). The AJDoc cannot be run repeatedly +in a single Ant run, and has trouble loading the doclet unless the libraries +are installed in ${ant.home}/lib. +<p> +<hr /> +<h2><a name="1.0rc2">1.0rc2</a></h2> + + <ul> + <li><a href="#1.0rc2language">Language</a></li> + <li><a href="#1.0rc2compiler">Compiler</a></li> + <li><a href="#1.0rc2ajde">AJDE</a></li> + </ul> + +<h2><a name="1.0rc2language">Language</a></h2> + +<p>There are no language changes in this release. This is a bug fix release +only.</p> + +<h2><a name="1.0rc2compiler">Compiler</a></h2> + +<p>A bug in handling inner type names that conflict with enclosing +type names was fixed. Many error messages were improved.</p> + +<h2><a name="1.0rc2ajde">AJDE</a></h2> + +<ul> + <li>This is a bug fix release only.</li> +</ul> + +<h4>AJDE for JBuilder</h4> + +<ul> + <li>Changes:<ul> + <li>Fixed bug causing the output path to be ignored and .class files to be + generated into the JBuilder install's "bin" directory.</li> + <li>Fixed bugs in Browser listener causing NullPointerExceptions to be thrown + if no node editor was present.</li> + <li>Fixed bug permitting "-bcg" option to be passed to the compiler.</li> + <li>Fixed bug preventing ajc from compiling all of the project source files + when automatic package discovery was on (JBuilder Proffessional and Enterprise + editions).</li> + <li>If the "-preprocess" flag is used resulting source files will be placed in + the project's "Working directory".</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>"Automatic package discovery" mode is not supported in this release.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>AJDE for Forte</h4> + +<ul> + <li>Changes:<ul> + <li>Moved the "AspectJ" menu into the "Tools" menu in order to make it less + intrusive.</li> + <li>Added a "ctrl-alt-shift-F9" keyboard compile shortcut.</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>Known bug: "Mode" switching is not supported in this version--you must + do all of your AspectJ work in the "Editing" mode. If you switch modes the + IDE has to be restarted for the AspectJ window to show again. Switching to a + different tab in the ProjectExplorer has the same effect.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>AJBrowser</h4> + +<ul> + <li>Changes:<ul> + <li>...</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>AJBrowser is currently an undocumented demonstration application. To use + it type:<br> + > ajbrowser <lst file1> <lst file2> ...</li> +</ul> + + </li> +</ul> + +<h4>Emacs Support: aspectj-mode and AJDEE</h4> + +<p align="left"> This release now properly displays annotations for call sites and + introductions. Robustness has been improved in several dimensions, + including performance at startup. The compile menu now recomputes + properly when changing directories.</p> + +<hr /> + +<h2><a name="1.0rc1">1.0rc1</a></h2> + + <ul> + <li><a href="#1.0rc1language">Language</a></li> + <li><a href="#1.0rc1compiler">Compiler</a></li> + <li><a href="#1.0rc1ajde">AJDE</a></li> + </ul> + +<h2><a name="1.0rc1language">Language</a></h2> + +<p>Some of the details of the specification for perthis and pertarget +have changed. These changes make these language constructs +implementable on current JVMs without memory leaks (this wasn't true +of the previous version). Most people will probably not notice these +changes, but the correct semantics are described in +<a href="progguide/apb.html">the semantics section of the programming +guide</a>. +</p> + +<p>In a related change, aspects are not allowed to implement either +the <code>java.io.Serializable</code> or the +<code>java.lang.Cloneable</code> interface. It is unclear what the +correct behavior of a system should be when an aspect is serialized or +cloned, and rather than make an arbitrary choice right now we've +chosen to leave the most room to design them right in a future +release.</p> + +<h2><a name="1.0rc1compiler">Compiler</a></h2> + +<p>ajc now directly generates .class files without using javac as a +back-end. This should result in improved compiler performance, better +error messages and better stack-traces and debugging info in those +.class files. -preprocess mode is still available for those who want +to generate legal Java source code and a new -usejavac mode is +available if you have a requirement to continue to use javac as a +back-end.</p> + +<p>ajc now officially supports source files with the .aj extension. +We plan to extend this support to the rest of our tools as time +permits. +</p> + +<p>This release of ajc includes support for the "-source 1.4" option +that enables the new 'assert' keyword in jdk1.4. This option only +works correctly when compiling against the jdk1.4 libraries. In +addition, this release of ajc will run under SUN's jdk1.4beta2. +However, we still strongly recommend that most users use the non-beta +jdk1.3.</p> + +<h2><a name="1.0rc1ajde">AJDE</a></h2> + +<ul> + <li>The structure view can now be configured (using the "Options" dialog) to + display different kinds of associations between program elements that appear + in the tree.</li> + <li>Structure view history navigation has been added. </li> + <li>When navigating links the structure view will stay synchronized with the + editor.</li> +</ul> + +<h4>AJDE for JBuilder</h4> + +<ul> + <li>Changes:<ul> + <li>Inline structural navigation annotations appear in the gutter of the + editor and can be used to navigate associations such as advice and + introduction.</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>"Automatic package discovery" mode is not supported in this release.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>AJDE for Forte</h4> + +<ul> + <li>Changes:<ul> + <li>Support for Forte 3 and Netbeans 3.2 has been added.</li> + <li>The module is now installed by default on the first use without having to + go to the IDE options to enable it.</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>Known bug: "Mode" switching is not supported in this version--you must + do all of your AspectJ work in the "Editing" mode. If you switch modes the + IDE has to be restarted for the AspectJ window to show again. Switching to a + different tab in the ProjectExplorer has the same effect.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>AJBrowser</h4> + +<ul> + <li>Changes:<ul> + <li>Build configuration file editor added.</li> +</ul> + + </li> + <li>Limitations:<ul> + <li>AJBrowser is currently an undocumented demonstration application. To use + it type:<br> + > ajbrowser <lst file1> <lst file2> ...</li> +</ul> + + </li> +</ul> + +<h4>Aspectj-mode and AJDEE: AspectJ support in Emacs</h4> + +<p align="left">This release of AspectJ support for Emacs includes corrections to the +documentation and the appearance of annotations and jumps in the editing +view. Also, advice are now shown on non-declarations, when appropriate, +such as call advice. The internal event model has been revised to reduce +computational overhead. </p> + +<hr /> + +<h2><a name="1.0beta1">1.0beta1</a></h2> + +<ul> + <li><a href="#1.0beta1language">Language</a></li> + <li><a href="#1.0beta1compiler">Compiler</a></li> + <li><a href="#1.0beta1ajbrowser">AJBrowser</a></li> + <li><a href="#1.0beta1ajde">AJDE</a></li> +</ul> + +<h2><a name="1.0beta1language">Language</a></h2> + +<p>There is one language change since 1.0alpha1. The static modifier is +no longer needed or allowed on pointcut declarations. Name binding +for pointcut declarations works like class methods now. Thanks to +Robin Green for encouraging us to look at this one last time.</p> + +<p>The current implementation of perthis/pertarget has the possibility of +memory leaks (thanks to Arno Schmidmeier for pointing this out). The +design of this part of the language will almost certainly see some +changes in the next release to address issues of implementability on +the JVM as well as related issues.</p> + +<h2><a name="1.0beta1compiler">Compiler</a></h2> + +<p>The ajc compiler should now catch all errors in source code and you +should no longer see errors coming from files in 'ajworkingdir'. +Please report any errors in 'ajworkingdir' as bugs.</p> + +<p>All reported bugs in 1.0alpha1 have been fixed. Thanks to everyone +for your bug reports. Most notably, the 'if' pcd that was added in +1.0alpha1 should work correctly in this release. Thanks to Morgan +Deters for a very thorough bug report on this broken feature days +after the 1.0alpha1 release.</p> + +<h2><a name="1.0beta1ajbrowser">AJBrowser</a></h2> + +<ul> + <li>Support for executing classes has been added.</li> + <li>.lst can now be passed as arguments on the command line.</li> + <li>Compiler options can be set.</li> + <li>Know limitations:<ul> + <li>In order to execute classes they must be available on the classpath that + the browser is launched with.</li> + </ul> + </li> +</ul> + +<h2><a name="1.0beta1ajde">AJDE</a></h2> + +<ul> + <li>The performance and UI of the structure tree has been improved.</li> + <li>Compilation now runs in a separate thread and a progress monitor is + updated during the compile.</li> + <li>The structure view now persists across IDE launches.</li> + <li>Limitations:<ul> + <li>If an error occurs in the javac pass it will not display properly in the + error messages pane. To view the error you have check the output of the + console that the IDE was launched from. No more errors should be passed + to javac, so please report this behavior and the corresponding error message + as a bug.</li> +</ul> + + </li> +</ul> + +<h4>AJDE for JBuilder</h4> + +<ul> + <li>Known bugs have been fixed.</li> + <li>Classpath separator character is no longer hardcoded.</li> + <li>Keyboard shortcuts for compilation (ctrl-F11) and execution (ctrl-F12) + have been added.</li> + <li>Limitations:<ul> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>AJDE for Forte</h4> + +<ul> + <li>Known bugs have been fixed.</li> + <li>Limitations:<ul> + <li>"Mode" switching is not supported in this version--you must do all of your + AspectJ work in the "Editing" mode. If you switch modes the IDE has to + be restarted for the AspectJ window to show again.</li> + <li>There are no keyboard compile/execute shortcuts.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + </ul> + </li> +</ul> + +<h4>Aspectj-mode and AJDEE: AspectJ support in Emacs</h4> + +<p> AspectJ Development Environment for Emacs has been split into two pieces, +aspectj-mode (an extension of java-mode), and AJDEE (an extension of JDE). +Additionally, a switch, -emacssym, has been added to ajc that generates +AspectJ declarations information directly, thus beanshell is no longer +required for use of these modes. +</p> + +<hr /> + +<h2><a name="1.0alpha1">1.0alpha1</a></h2> + +<p> This is the first alpha release of the 1.0 language and tools. +There have been many changes in the language, and many improvements to +the tools. We wish to thank our users for putting up with the high +volatility of AspectJ in the push to 1.0. </p> + + <ul> + <li><a href="#1.0alpha1language">Language</a></li> + <li><a href="#1.0alpha1compiler">Compiler</a></li> + <li><a href="#1.0alpha1documentation">Documentation</a></li> + <li><a href="#1.0alpha1ajdoc">AJDoc</a></li> + <li><a href="#1.0alpha1ant">Ant</a></li> + <li><a href="#1.0alpha1ajbrowser">AJBrowser</a></li> + <li><a href="#1.0alpha1ajde">AJDE</a></li> + </ul> + +<h3><a name="1.0alpha1language">Language</a></h3> + +<p> There have been many changes to make the 1.0 language both simpler +and more powerful. User feedback has driven most of these design +changes. Each email we've received either making a suggestion or just +asking a question about a confusing part of the language has played a +part in shaping this design. We'd like to thank all of our users for +their contributions. + +<p>While we don't have room to thank all of our users by name, we'd +like to specifically mention a few people for their high-quality +sustained contributions to the users@aspectj.org mailing list as well +as through their feature requests and bug reports. Robin Green +(who'll be very happy to see <code>declare error</code>), Stefan +Hanenberg (who should appreciate the '+' wildcard in type patterns), +and Rich Price (who suggested final pointcuts, more flexible +dominates, and many other improvements).<p> + +<p> Note that entries into the <a href="porting.html">porting +notes</a> for this release are linked from the various language +changes. </p> + +<h4>Pointcuts</h4> + +<p> Perhaps the least interesting -- but most pervasive -- change is +that the names of the single-kinded pointcut designators (the ones +that pick out only one kind of join point) </p> + +<blockquote>calls executions gets sets handlers initializations +staticinitializations</blockquote> + +<p> have been +<a href="porting.html#1.0a1-plural-to-singular">changed</a> to be +singular rather than plural nouns </p> + +<blockquote>call execution get set handler initialization +staticinitialization</blockquote> + +<p> Although a side benefit is that the names are one character +shorter, the real benefit is that their combination with the +<CODE>&&</CODE> and <code>||</code> operators now reads much +more naturally. No longer does "and" mean "or" and "or" mean "and". +</p> + +<p> You'll notice that <code>receptions</code> doesn't appear on the +table as being shortened to <code>reception</code>. That's because +call and reception join points have been merged, and the +<code>receptions</code> pointcut declaration has been +<a href="porting.html#1.0a1-remove-receptions">eliminated</a>. Now, +<code>call</code> join points describe the action of making a call, +including both the caller and callee. Eliminating reception join +points makes AspectJ much simpler to understand (reception join points +were a commonly misunderstood feature) without giving up expressive +power.</p> + +<p> We have <a href="porting.html#1.0a1-fixing-state-access">changed +the mechanism for accessing state</a> at join points, which has the +benefit of making our treatment of signatures +<a href="porting.html#1.0a1-no-subs-in-sigs">cleaner</a> and easier to +read. As a part of this, the <code>instanceof</code> pointcut +designator has now been +<a href="porting.html#1.0a1-fixing-instanceof">split into two +different pointcut designators</a>, <code>this</code> and +<code>target</code>, corresponding to a join point's currently +executing object and target object, respectively. </p> + +<p> The new <code>args</code> pointcut adds expressive power to the +language by allowing you to capture join points based on the actual +type of an argument, rather than the declared type of its formal. So +even though the <code>HashSet.removeAll</code> method takes a +<code>Collection</code> as an argument, you can write advice that only +runs when it is actually passed a <code>HashSet</code> object. </p> + +<p> AspectJ's notion of object construction and initialization, a +complicated process in Java, has been clarified. This affects some +uses of the +<a href="porting.html#1.0a1-initializations">initializations +pointcut</a> and +<a href="porting.html#1.0a1-constructor-calls">constructor calls</a> +pointcut. </p> + +<p> The little-used pointcuts +<a href="porting.html#1.0a1-hasaspect"><code>hasaspect</code></a> and +<a href="porting.html#1.0a1-withinall"><code>withinall</code></a> have +been removed. </p> + +<p> The <code>returns</code> keyword is +<a href="porting.html#1.0a1-user-defined-returns">no longer +necessary</a> for user-defined pointcuts. </p> + +<p> Pointcuts may now be declared <code>static</code>, and +<a href="porting.html#1.0a1-static-pointcuts">only static +pointcuts</a> may be declared in classes and referred to with +qualified references (such as <code>MyAspect.move()</code>). </p> + +<p> Non-abstract pointcuts may now be declared <code>final</code>. +</p> + +<p> We have finally added an extremely general pointcut, +<code>if(<var>BooleanExpression</var>)</code>, that picks out +join points programatically. </p> + + +<h4>Type patterns</h4> + +<p> Our treatment of +<a href="porting.html#1.0a1-new-wildcards">* and ..</a> in type +patterns is cleaner. </p> + +<p> Type patterns now have the ability to include array types, and +there is a new wildcard, +, to pick out all subtypes of a given type. +Previously, the subtypes operator was only allowed in introduction, +and was <a href="porting.html#1.0a1-subtypes-to-plus">spelled +differently</a>. </p> + +<h4>Advice</h4> + +<p> Around advice is treated much more like a method, with a +<a href="porting.html#1.0a1-around-returns">return value</a> and an +optional <a href="porting.html#1.0a1-around-throws">throws clause</a>. +</p> + +<p> The advice precedence rules have been +<a href="porting.html#1.0a1-advice-precedence">changed</a>. Now, for +example, a piece of after advice that appears lexically later than +another piece of after advice will run later, as well. Previously, +the relationship was the other way around, which caused no small +amount of confusion. </p> + +<p> After returning advice has lost a +<a href="porting.html#1.0a1-after-returning">useless set of +parentheses</a> when not using the return value. </p> + +<p> The <code>thisStaticJoinPoint</code> reflective object has been +<a href="porting.html#1.0a1-this-static-join-point">renamed</a>, and +the <code>thisJoinPoint</code> object hierarchy has been +<a href="porting.html#1.0a1-this-join-point">simplified</a>. </p> + +<h4>Introduction and static crosscutting</h4> + +<p> On the static side of the language, introduction hasn't changed, +but there is now a new keyword, <code>declare</code>, that is used to +declare various statically-crosscutting properties. One of these +properties is subtyping, so we've +<a href="porting.html#1.0a1-plus-implements-extends">gotten rid of</a> +the ugly keywords <code>+implements</code> and +<code>+extends</code>. </p> + +<p> We have provided two new forms, <code>declare error</code> and +<code>declare warning</code>, for the often-asked-for property of +compile-time error detection based on crosscutting properties. </p> + +<p> AspectJ's interaction with checked exceptions is now firmly on the +side of static crosscutting, since Java treats such exceptions at +compile-time. A new form, <code>declare soft</code>, can be used to +"soften" checked exceptions into an unchecked form. This may affect +some uses of <a href="porting.html#1.0a1-now-use-soft">around +advice</a> that previously mucked with the exception checking +system.</p> + +<h4>Aspects</h4> + +<p> The "of each" modifiers have been +<a href="porting.html#1.0a1-aspects">renamed</a>. Apart from the +spelling, the main interesting difference is the splitting up of +<code>of eachobject</code> into two different modifiers, parallel with +the split of <code>instanceof</code> into <code>this</code> and +<code>target</code>. </p> + +<p> The <code>dominates</code> keyword now takes a type pattern, +rather than a type. This allows an aspect A, for example, to declare +that its advice should dominate the advice of another aspect B as well +as its subtypes, with the new + subtypes operator: <code>aspect A +dominates B+</code>. +</p> + +<h3><a name="1.0alpha1compiler">Compiler</a></h3> + +<p> The most important change in the compiler is that it supports the +new language. In addition, all reported bugs in the last release have +been fixed. Thanks for your bug reports.</p> + +<p>The compiler also gets a new <code>-encoding</code> flag in this +release for handling source files that are not in standard US-ASCII +format. Thanks to Nakamura Tadashi for both suggesting this feature +and for submitting a nice patch to implement it. + +<h4>Known Limitations</h4> + +<p> The previous compiler's limitations regarding join points that +occurred in anonymous classes have all been eliminated. +Unfortunately, eliminating this restriction has resulted in +preprocessed source code that is less readable than in previous +releases. More care will be taken in the next release to mitigate +this effect. </p> + +<p> Many semantic errors are not caught by ajc but fall through to +javac. Moreover, some errors regarding the initialization of final +fields might never show up when using ajc. This will be fixed +shortly. </p> + + +<h3><a name="1.0alpha1documentation">Documentation</a></h3> + +<p> Although we spent much of our time this release cycle updating the +documentation to the new language rather than improving its content, +we did make some structural improvements. The old <cite>Primer</cite> has been +split into a <cite>Programming Guide</cite>, covering the language, and a +<cite>Development Environment Guide</cite>, covering the develompent tools. In +addition, printable versions of both guides (in PDF) are finally +included in the documentation package. </p> + +<h3><a NAME="1.0alpha1ajdoc">Ajdoc</a></h3> + +<p> Ajdoc was rewritten to conform with the language changes and provide support +for other AspectJ/Java compilers. Our doclet is used by default creating +AspectJ-specific documentation, or Sun's standard doclet can be used by +passing the '-standard' flag to Ajdoc to produce regular Javadoc documentation +(excluding AspectJ-specifics). +</p> + +<h3><a NAME="1.0alpha1ant">Ant</a></h3> + +<p> An Ajdoc task is now available. The Ajc ant task was improved to +be completely back-compatible with the Javac task.</p> + +<h3><a NAME="1.0alpha1ajbrowser">AJBrowser</a></h3> + +<p> The "AspectJ Browser" is a new standalone source code browsing application. +It will let you compile ".lst" files, view the structure for those files and +navigate the corresponding source code.</p> + +<h3><a name="1.0alpha1ajde">AJDE</a></h3> + +<h4>AJDE for JBuilder</h4> + +<h5>Installation</h5> +<ul> + <li>Use the installer to place the "ajdeForJBuilder.jar" and "aspectjrt.jar" + in to JBuilder's lib/ext directory.</li> +</ul> + +<h5>Key Improvements</h5> + +<ul> + <li>The "AspectJ Structure View" replaces JBuilder's structure view instead of + being launched in a separate window.</li> + <li>AJDE can be toggled on/off with the "AJ" button--when it is turned off all + of the menus, resources, and event listeners that it uses will be removed.</li> + <li>Projects no longer require the manual adding of the "aspectjrt.jar" + libarary.</li> +</ul> + +<h5>Known Bugs & Limitations</h5> + +<ul> + <li>There is no compiler progress dialog--the way to tell if the compile is + finished is to watch the "status" area of the main window.</li> + <li>There are no keyboard compile/execute shortcuts.</li> + <li>The structure view is not persistent between IDE launches--you must + compile to view the structure for a program.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + <li>There is no ajdoc tool support.</li> + <li>Linux testing has been very limited.</li> +</ul> + + +<h4>AJDE for Forte</h4> + + +<h5>Installation</h5> + +<ul> + <li>Use the installer to place the "ajdeForForte.jar" in Forte's + modules directory and "aspectjrt.jar" + in to Forte's lib/ext directory.</li> + <li> + In the "Tools" menu select "Global Options"</li> + <li> + Right-click the "Modules" item and select "New Module from + File..."</li> + <li> + Find the ajdeForForte.jar in the directory that you installed into (e.g. + c:\forte4j\modules) and + select it.</li> +</ul> + +<h5>Key Improvements</h5> + +<ul> + <li>AJDE can be toggled on/off with the "AJ" button--when it is turned off all + of the menus, resources, and event listeners that it uses will be removed.</li> + <li>The AJDE functionality is now contained within it's own toolbar and menu.</li> +</ul> + +<h5>Known Bugs & Limitations</h5> + +<ul> + <li>"Mode" switching is not supported in this version--you must do all of your + AspectJ work in the "Editing" mode. If you switch modes the IDE has to + be restarted for the AspectJ window to show again.</li> + <li>There is no compiler progress dialog--the way to tell if the compile is + finished is to watch the "status" area of the main window.</li> + <li>There are no keyboard compile/execute shortcuts.</li> + <li>The structure view is not persistent between IDE launches--you must + compile to view the structure for a program.</li> + <li>The debugger has not seen much use and it's stability and performance is + limited.</li> + <li>There is no ajdoc tool support.</li> + <li>Linux testing has been very limited.</li> +</ul> + +<h4>AJDE for Emacs</h4> + +<p> AspectJ-mode now includes a toggle in the AspectJ menu that +disables its intrusive functions, enabling easy switching between Java +and AspectJ projects. See the README and CHANGES files in the +distribution for additional details. </p> + +<p> AJDEE is now compatible with JDEE 2.2.7.1, JDEE 2.2.8beta4, and speedbar +0.14alpha. It a toggle in the AspectJ menu that disables its intrusive +functions, enabling easy switching between Java and AspectJ projects. See +the README and CHANGES files in the distribution for additional details. +</p> + + +<hr /> + +<h2><a name="oldversions">Previous Versions</a></h2> + +<p> Changefiles for previous versions can be found in +<code>doc/oldversions</code> in the documentation distribution. +</p> + + +</body> +</html> |