123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046 |
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html> <head>
- <meta http-equiv="Content-Language" content="en-us">
- <title>Changes in AspectJ</title>
- <STYLE TYPE="text/css">
- <!--
-
- /* FOR THE SDA PAGE */
-
- /*
- BODY {margin-top: 15px; margin-left: 15px; margin-right: 15px;}
- */
-
- A:link {
- color:#4756AC;
- }
- A:visited {
- color:#60657B;
- }
- A:hover {
- color:red
- }
-
- INPUT {font:12px "Courier New", sans-serif;}
-
- H2 {
- font:18px/18px Verdana, Arial, Helvetica, sans-serif;
- color:black;
- font-weight:bold;
- margin-left: 10px;
- line-height:110%;
- }
- H3 {
- font:17px/17px Verdana, Arial, Helvetica, sans-serif;
- color:black;
- //font-weight:bold;
- margin-left: 10px;
- line-height:110%;
- }
- H4 {
- font:15px/16px Verdana, Arial, Helvetica, sans-serif;
- color:black;
- font-weight:bold;
- margin-left: 10px;
- line-height:140%;
- }
- P {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- margin-right: 10px;
- margin-left: 10px;
- line-height:130%;
- }
- .paragraph {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- margin-right: 10px;
- margin-left: 10px;
- line-height:130%;
- }
- .smallParagraph {
- font:11px/11px Verdana, Arial, Helvetica, sans-serif;
- margin-right: 10px;
- margin-left: 10px;
- line-height:130%;
- }
- LI {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- text-align:justify;
- margin-right: 10px;
- margin-left: 15px;
- line-height:120%;
- }
- /*
- UL {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- text-align:justify;
- margin-right: 10px;
- margin-left: 15px;
- line-height:120%;
- }*/
-
- DL {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- text-align:justify;
- margin-right: 10px;
- margin-left: 15px;
- line-height:120%;
- }
- B { font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- font-weight:bold;
- line-height:140%;
- }
- .footer {
- font:10px/10px Verdana, Arial, Helvetica, sans-serif;
- color:#888888;
- text-align:left
- }
- .figureTitle {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- text-align:justify;
- text-align:center
- }
- .copyrightNotice {
- font:10px/10px Verdana, Arial, Helvetica, sans-serif;
- color:#999999;
- line-height:110%;
- }
- .smallHeading {
- font:13px/13px Verdana, Arial, Helvetica, sans-serif;
- font-weight:bold;
- line-height:110%;
- }
- .tinyHeading {
- font:11px/11px Verdana, Arial, Helvetica, sans-serif;
- font-weight:bold;
- line-height:120%;
- }
- .newsText {
- font:11px/11px Verdana, Arial, Helvetica, sans-serif;
- line-height:130%;
- }
- .smallParagraph {
- font:11px/11px Verdana, Arial, Helvetica, sans-serif;
- line-height:130%;
- }
- .fancyHeading {
- font:20px/20px Chantilly, Arial, Helvetica, sans-serif;
- margin-right: 10px;
- color:#6f7a92;
- margin-left: 10px;
- line-height:130%;
- }
-
- -->
- </STYLE>
- </head>
- <body>
-
- <div align=right><small>
- © Copyright 1998-2002 Palo Alto Research Center Incorporated
- 2003-2008 Contributors.
- All rights reserved.
- </small></div>
-
- <h2>Changes in AspectJ</h2>
-
- <ul>
-
- <li> <a href="#1.6.0">1.6.0</a> (released 2008-04)</li>
- <li> <a href="#1.5.4">1.5.4</a> (released 2007-12)</li>
- <li> <a href="#1.5.3">1.5.3</a> (released 2006-11)</li>
- <li> <a href="#1.5.2">1.5.2</a> (released 2006-06)</li>
- <li> <a href="#1.5.1">1.5.1</a> (released 2006-04)</li>
- <li> <a href="#1.5.0">1.5.0</a> (released 2005-12)</li>
- <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)
- </li>
- <li> 1.1.0 (released 2003-06-06)
- See <a href="README-11.html">README-11.html</a>
- </li>
-
- <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="porting.html">Porting and Transition</a></li>
- </ul>
-
- <hr />
-
- <h2><a name="1.6.0">1.6.0</a></h2>
- <p>This release rebases AspectJ on the Eclipse Compiler version 785_R33X - making it Java6 compliant.</p>
-
- <p>A full list of bugs fixed and enhancements implemented can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.6.0+M1&target_milestone=1.6.0+M2&target_milestone=1.6.0+RC1&target_milestone=1.6.0&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=">Bugzilla</a>.
- </p>
-
- <h2><a name="1.5.4">1.5.4</a></h2>
- <p>This release contains around 40 bug fixes and enhancements since the 1.5.3 release.</p>
-
- <p>A full list of bugs fixed and enhancements implemented can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=AspectJ&target_milestone=1.5.4&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED"/>
- Bugzilla</a>
- </p>
-
- <h2><a name="1.5.3">1.5.3</a></h2>
- <p>This release contains around 80 bug fixes and enhancements since the 1.5.2 release.</p>
-
- <p>A full list of bugs fixed and enhancements implemented can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=AspectJ&target_milestone=1.5.3&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED"/>
- Bugzilla</a>
- </p>
-
- <h2><a name="1.5.2">1.5.2</a></h2>
- <p>This release contains around 60 bug fixes and enhancements since the 1.5.1 release.</p>
-
- <p>A full list of bugs fixed and enhancements implemented can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=AspectJ&target_milestone=1.5.2&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED"/>
- Bugzilla</a>
- </p>
-
- <h2><a name="1.5.1">1.5.1</a></h2>
- <p>This release contains over 70 bug fixes and enhancements since the 1.5.0 release.</p>
-
- <p>A full list of bugs fixed in AspectJ 5 can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&product=AspectJ&target_milestone=1.5.1&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED"/>
- Bugzilla</a>
- </p>
-
- <h2><a name="1.5.0">1.5.0</a></h2>
- <p>This release contains nearly 400 bug fixes and enhancements since the 1.2.1 release.
- Major updates to the language are documented in the
- <a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>. There are
- also a number of enhancements to accompanying tools documented in the
- <a href="devguide/index.html">Developer's Guide</a>
- </p>
-
- <p>A full list of bugs fixed in AspectJ 5 can be found in
- <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&product=AspectJ&resolution=FIXED&chfieldfrom=2004-11-06&chfieldto=2005-12-20">bugzilla</a>.
- </p>
-
- <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
- 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=46347">46347</a>
- The ajc compiler now can read .class files from directories as well as
- zip files for bytecode weaving, via the new -inpath option.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48080">48080</a>
- Error and warning messages emitted as a result of a declare error or
- declare warning statement now include context information that indicates
- the matched join point.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54819">54819</a>
- Error and warning messages coming from the weaving phase of compilation now
- show source context wherever it is available, and also indicate as the source
- location of the error either the class file or jar file from which the binary
- source unit came.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36430">36430</a>
- A new -Xreweavable option has been added which allows class files to be woven
- more than once.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=49250">49250</a>
- SoftException now supports getCause().
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51320">51320</a>
- AspectJ 1.2 now gives a compilation error if one of the non-statically determinable
- pointcut forms is used in a declare statement.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53012">53012</a>
- Declaring precedence on a class type (rather than an aspect type) is now an
- error unless subtypes are included.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36069">36069</a>
- The source information for inlined advice is now correct (using JSR 45).
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=34206">34206</a>
- (See also <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44587">44587</a>).
- Errors occuring during static initialisation of an aspect are now handled much more gracefully.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41952">41952</a>
- A new Xlint warning warns users specifying declaring type patterns in
- call pointcut designators if the pointcut does not match at places they
- may expect it to.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42574">42574</a>
- -extdirs opion now recognises .zip files as well as .jar.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48091">48091</a>
- New option -XlazyTjp defers creation of JoinPoint objects until just before
- calling the advice body that requires them. This allows the cost of creating
- JoinPoint objects to be avoided using an if() pointcut test that returns
- false when the advice body is not required to be executed. Speed-ups of 10-100X are
- obtained via this optimisation (as compared to putting the test inside the advice
- body).
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45441">45441</a>
- IncompatibleClassChangeError at runtime when compiling with the -1.4 option.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54625">54625</a>
- Incremental compilation did not support the -outjar option, but silently
- failed if it was specified. AspectJ 1.2 always performs a full build when
- the -outjar option is present.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54965">54965</a>
- Incremental compilation under AspectJ 1.2 is approximately twice as fast as
- under AspectJ 1.1.1.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=55134">55134</a>
- Incremental compilation now deletes any additional class files generated during
- the weave phase when the class file from whence they came is deleted.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54621">54621</a>
- Incremental compilation will now detect changes (add, delete, modify) to class
- files in directories on the inpath and will include them in incremental compilation.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54621">54621</a>
- Incremental compilation will now detect changes to jars on the inpath (and injars),
- and trigger a full build if a jar is modified.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54622">54622</a>
- Incremental compilation will now detect changes to resources on the inpath.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54618">54618</a>
- Incremental compilation will now detect changes to any of the paths affecting
- compilation, and triggers a full build if there has been any change since the
- last build.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50200">50200</a>
- The aspectjrt.jar manifest file now has the correct (upper) case.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=49457">49457</a>
- No error given when overloading pointcuts, unless variables are bound.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=50776">50776</a>
- Compilation failure when overriding an inter-type declared method with a
- different throws clause.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51919">51919</a>
- Polymorphic inter-type declaration fails.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52464">52464</a>
- Declare warning coupled with inter-type declaration causes compiler crash.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41125">41125</a>
- Variable names in the local variable table (for debugging) are now correctly
- preserved in all cases.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43792">43792</a>
- Improved support for non-US locales (and significantly boosted weaver
- performance at the same time).
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=35636">35636</a>
- AspectJ 1.2 behaves much more gracefully when running out of memory. (It also
- requires less memory than 1.1.1 did in any case).
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42711">42711</a>
- Super-types of parameters not recognised when calling priveleged methods.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=43972">43972</a>
- (See also <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45676">45676</a>).
- Incorrectly adding synthetic attribute to generated methods.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45184">45184</a>
- External pointcut references not resolved when a named pointcut is used by a
- declare statement.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46750">46750</a>
- Declare soft does not work inside a nested aspect.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47754">47754</a>
- No error signalled when attempting to declare a static method on an interface
- using an inter-type declaration.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48522">48522</a>
- Declare soft softens all exceptions at matched join points, not just the
- exception declared to be soft.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=49295">49295</a>
- AspectJ 1.2 no longer supports inter-type constructor declarations on interfaces.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=51929">51929</a>
- Call to a protected super-type method within a advice body causes java.lang.VerifyError.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=52928">52928</a>
- Private members introduced via an interface are incorrectly visible within implementing classes.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=47910">47910</a>
- An output jar file created by AspectJ when using the -outjar option does not contain a
- valid manifest file.
- </li>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=59909">59909</a>
- Thread local storage used to manage cflow stacks when available - improves cflow performance
- when working with a multi-threaded application.
- </li>
- </ul>
-
- <h2><a name="1.1.1">1.1.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.1.1">full list of bug fixes</a>
- (49 in all) can be found on bugzilla.</p>
-
- <p>Some of the more significant bug fixes and enhancements in this release include:
- <ul>
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40943">40943</a>
- The ajc compiler now copies resource files from jars specified using the
- -injars option. When compiling with source directories, resources are <i>not</i>
- copied - mirroring the behaviour of javac so as to cause minimum disruption
- when switching between ajc and javac.
- (To copy resources from source directories, use the iajc Ant task
- <tt>sourceRootCopyFilter</tt> option.)
- Thanks to Matthew
- Webster for contributing many of the patches for this enhancement.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39626">39626</a>
- ajc was erroneously putting aspectjtools.jar in the classpath of a compilation.
- This caused problems when attempting to compile projects using different versions
- of any of the classes in aspectjtools.jar. Thanks to George Harley and Igor
- Hjelmstrom Vinhas Ribeiro for their assistance in tracking this down.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40257">40257</a>
- Relative paths are now supported in ".lst" files.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40771">40771</a>
- The Ajde apis are no longer coupled to swing. This is of most significance to AJDT
- users on the Mac OS X platform, enabling AJDT to be used with Mac OS X.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41254">41254</a>
- Of interest to those writing tools that need to interact with the structure model for
- AspectJ programs: the interface to the AspectJ structure model was significantly revised
- and enhanced in 1.1.1.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39462">39462</a>
- A compiler exception was thrown when an abstract aspect in a library was extended by
- a concrete aspect using cflow. Thanks to Takao Naguchi for an easy to reproduce bug report.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=39479">39479</a>
- Compiler crashes when a constructor delegates to another constructor that uses a switch statement.
- Thanks to Andy Clement for both the easy to reproduce bug report and the patch.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41175">41175</a>
- Declared exceptions were being lost on inter-type declarations made from binary
- aspects in an aspect library.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=41359">41359</a>
- Aspect per-clauses were not inherited by sub-aspects when using binary aspect libraries.
- Thanks to Chris Bozic for the easy to reproduce bug report.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42539">42539</a>
- The "+" pattern was being ignored for type patterns used in throws clauses. Thanks to
- Keith Sader for the easy to reproduce bug report.
- <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=40807">40807</a>
- If you specify no output directory, the iajc Ant task now defaults to using
- the source directory, following ajc and javac.
- As a result, now you can use ajc to compile JSP's in Tomcat.
- Thanks to Ron Bodkin for investigating how to integrate ajc with Tomcat.
- </ul>
- </p>
-
- <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/semantics.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 />
-
- </body>
- </html>
|