]> source.dussan.org Git - aspectj.git/commitdiff
Add AspectJ 1.9.8 release notes
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Fri, 8 Oct 2021 08:55:37 +0000 (10:55 +0200)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Fri, 8 Oct 2021 09:07:16 +0000 (11:07 +0200)
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
docs/dist/doc/README-197.html
docs/dist/doc/README-198.html [new file with mode: 0644]
docs/dist/doc/index.html

index 734882597a7aee27dd5313e958e352c36a46d8ed..0b39b40cb6221b132a36374931100aa5692baa7b 100644 (file)
@@ -26,7 +26,7 @@
 
 <p>
   Please note that going forward Bugzilla for issue management is deprecated and new issues should be filed as <a href="https://github.com/eclipse/org.aspectj/issues/new">GitHub issues</a>.
-  The list of issues addressed for 1.9.7 can be found 
+  The list of issues addressed for 1.9.7 can be found
   <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.7">here for Bugzilla</a>
   and  <a href="https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.7">here for GitHub issues</a>.
 </p>
@@ -35,7 +35,7 @@
 
 <p>
   AspectJ 1.9.7 supports <a href="https://openjdk.java.net/projects/jdk/15/">Java 15</a> &amp;
-  <a href="https://openjdk.java.net/projects/jdk/16/">Java 16</a> and their respective final and review features:
+  <a href="https://openjdk.java.net/projects/jdk/16/">Java 16</a> and their respective final and preview features:
 </p>
 <ul>
   <li>text blocks (final 15)</li>
diff --git a/docs/dist/doc/README-198.html b/docs/dist/doc/README-198.html
new file mode 100644 (file)
index 0000000..825d872
--- /dev/null
@@ -0,0 +1,105 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+
+<head>
+<title>AspectJ 1.9.8 Readme</title>
+<style type="text/css">
+  <!--
+  P   { margin-left:  20px; }
+  PRE { margin-left:  20px; }
+  LI  { margin-left:  20px; }
+  H4  { margin-left:  20px; }
+  H3  { margin-left:  10px; }
+  -->
+</style>
+</head>
+
+<body>
+<div align="right"><small>&copy; Copyright 2021 Contributors. All rights reserved.</small></div>
+
+<h1>AspectJ 1.9.8</h1>
+
+<p>
+  Please note that Bugzilla for issue management is deprecated and new issues should be filed as
+  <a href="https://github.com/eclipse/org.aspectj/issues/new">GitHub issues</a>.
+  The list of issues addressed for 1.9.8 can be found
+  <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&f0=OP&f1=OP&f3=CP&f4=CP&j1=OR&list_id=16866879&product=AspectJ&query_format=advanced&target_milestone=1.9.8">here for Bugzilla</a>
+  and <a href="https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.8">here for GitHub issues</a>.
+</p>
+
+<h2>New features</h2>
+
+<p>
+  AspectJ 1.9.8 supports <a href="https://openjdk.java.net/projects/jdk/17/">Java 17</a> and its final and preview
+  features, such as:
+</p>
+<ul>
+  <li>sealed classes (final in Java 17, previews in Java 15, 16 and AspectJ 1.9.7)</li>
+  <li>pattern matching for switch</li>
+</ul>
+<p>
+  For features marked as preview on a given JDK, you need to compile with <tt>ajc --enable-preview</tt> and run with
+  <tt>java --enable-preview</tt> on that JDK.
+</p>
+<p>
+  Please note that you cannot run code compiled with preview features on any other JDK than the one used for
+  compilation. For example, records compiled with preview on JDK 15 cannot be used on JDK 16 without recompilation. This
+  is a JVM limitation unrelated to AspectJ. Also, e.g. sealed classes are preview-1 on JDK 15 and preview-2 on JDK 16.
+  You still need to recompile, no matter what.
+</p>
+<p>
+  Furthermore, the <tt>--release N</tt> compiler option for correct cross-compilation to previous JDK bytecode + API
+  versions is now supported by AJC. Previously, the option existed (inherited by ECJ) but did not work correctly.
+</p>
+
+<h3>Code examples</h3>
+
+<p>
+  You can find some sample code in the AspectJ test suite under the respective AspectJ version in which the features
+  were first supported (possibly as JVM preview features):
+</p>
+<ul>
+  <li>
+    <a href="https://github.com/eclipse/org.aspectj/tree/master/tests/features198/compiler_release">
+      Cross-compilation to legacy JDK
+    </a>:
+    An example class which only works correctly on JDK 8 when compiled with <tt>--release 8</tt> due to API changes in
+    the JDK. Simply <tt>-source 8 -target 8</tt> would not be enough in this case.</li>
+  <li>
+    <a href="https://github.com/eclipse/org.aspectj/tree/master/tests/features198/java17">
+      Pattern matching for switch
+    </a>
+  </li>
+</ul>
+
+<h2>Using LTW on Java 16+</h2>
+
+<p>
+  Please note that if you want to use load-time weaving on Java 16+, the weaving agent collides with
+  <a href="https://openjdk.java.net/jeps/396">JEP 396 (Strongly Encapsulate JDK Internals by Default)</a>. Therefore,
+  you need to set the JVM parameter <tt>--add-opens java.base/java.lang=ALL-UNNAMED</tt> in order to enable aspect
+  weaving. This is due to the fact that the weaver uses internal APIs for which we have not found an adequate
+  replacement yet when defining classes in different classloaders.
+</p>
+
+<h2>Other changes and bug fixes</h2>
+
+<ul>
+  <li>
+    The AspectJ compiler no longer works on JDK 8-10. The minimum compile-time requirement for AspectJ is JDK 11 due
+    to upstream changes in the Eclipse Java Compiler (subset of JDT Core), which AspectJ is a fork of. You can still
+    compile to legacy target versions as low as Java 1.3, but the compiler itself (and probably also the load-time
+    weaver) needs JDK 11.
+  </li>
+  <li>Document build profiles and properties in <i>docs/developer/BUILD.md</i></li>
+  <li>Add a guide for setting up an AspectJ development environment in <i>docs/developer/IDE.md</i></li>
+  <li>Allowed JAR saving if <tt>-proceedOnError</tt> is specified</li>
+</ul>
+
+<p>
+  Available: 1.9.8 available DD-MMM-2021
+</p>
+
+</body>
+
+</html>
index 94e13fe9674873a0b1962ce8deb7e050cc7c1acc..36bba482180a56e1905c95277d9a9ce1dd2d6058 100644 (file)
@@ -1,18 +1,18 @@
-<html> 
+<html>
 <head>
   <title>AspectJ Documentation and Resources</title>
 </head>
-<body> 
+<body>
 
 <a name="top"></a>
 <h1>AspectJ Documentation and Resources</h1>
-<p/> 
+<p/>
     AspectJ <sup><small>tm</small></sup>
-    is a seamless aspect-oriented extension to 
+    is a seamless aspect-oriented extension to
     Java<sup><small>tm</small></sup>.
-    The compiler and development tools are available under 
+    The compiler and development tools are available under
     an open-source license, require Java 1.3 to run, and produce
-    code that runs in JDK 1.1 and later VM's. 
+    code that runs in JDK 1.1 and later VM's.
     For the latest materials, see
     <a href="http://eclipse.org/aspectj">http://eclipse.org/aspectj</a>.
     Not all of these materials have been updated for AspectJ 5.
 <table>
     <tr><td><u>Section</u></td><td><u>Contents</u></td></tr>
     <tr><td><a href="#documentation">docs</a></td><td>
-       <a href="faq.html">FAQ</a>, 
+       <a href="faq.html">FAQ</a>,
        <a href="quick5.pdf">Quick Reference (AspectJ 5)</a>,
-       <a href="quick.pdf">Quick Reference (1.2.1)</a>, 
+       <a href="quick.pdf">Quick Reference (1.2.1)</a>,
        <a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>,
-       <a href="progguide/index.html">programming</a>, 
-       <a href="devguide/index.html">development</a> and 
-       <a href="pdguide/index.html">problem diagnosis</a> guides, 
+       <a href="progguide/index.html">programming</a>,
+       <a href="devguide/index.html">development</a> and
+       <a href="pdguide/index.html">problem diagnosis</a> guides,
        <a href="runtime-api/index.html">API</a> and
        <a href="examples/">example code</a>.
           </td></tr>
-    <tr><td><a href="#distributions">distributions</a></td><td>  
+    <tr><td><a href="#distributions">distributions</a></td><td>
         <a href="http://eclipse.org/aspectj">AspectJ</a>;
-        development environment support for 
-        <a href="http://eclipse.org/ajdt">Eclipse</a> 
+        development environment support for
+        <a href="http://eclipse.org/ajdt">Eclipse</a>
         and
-        <a href="https://jdeveloperaop.dev.java.net/">JDeveloper</a>. 
+        <a href="https://jdeveloperaop.dev.java.net/">JDeveloper</a>.
         </td></tr>
     <tr><td><a href="#resources">resources</a></td><td>
        <a href="http://aosd.net">aosd.net</a>;
        <a href="http://eclipse.org/aspectj">AspectJ project</a>
        the bug <a href="http://bugs.eclipse.org/bugs">db</a>,
-       and mailing lists for 
+       and mailing lists for
        <a href="mailto:aspectj-users@eclipse.org">users</a> and
        <a href="mailto:aspectj-dev@eclipse.org">developers</a>.
           </td></tr>
 <a name="documentation"></a>
 <h3>AspectJ documentation</h3>
 <table border="1">
-<tr> <th>Documentation</th><th>Description</th> 
+<tr> <th>Documentation</th><th>Description</th>
      </tr>
 
 
 <tr> <td><a href="quick5.pdf"> AspectJ 5 Quick Reference</a>
      </td>
-     <td>This is a four-page quick reference for the AspectJ 5 language. 
+     <td>This is a four-page quick reference for the AspectJ 5 language.
      </td> </tr>
 
 <tr> <td><a href="quick.pdf"> AspectJ Quick Reference</a>
      </td>
-     <td>This is a two-page quick reference for the AspectJ language. 
+     <td>This is a two-page quick reference for the AspectJ language.
      </td> </tr>
 
 <tr> <td><a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>
          (printable <a href="adk15notebook/printable.html">html</a>)
      </td>
      <td>This describes the changes to the AspectJ language and tools introduced
-     in the AspectJ 5 Development Kit. These changes are additive, and are not yet 
+     in the AspectJ 5 Development Kit. These changes are additive, and are not yet
      reflected in the programming guide or quick reference.</td>
      </tr>
 
 <tr> <td><a href="progguide/index.html">Programming Guide</a>
          (printable <a href="progguide/printable.html">html</a>)
      </td>
-     <td>This introduces AOP and the AspectJ language.  
+     <td>This introduces AOP and the AspectJ language.
       <a href="progguide/starting.html">Getting Started</a>
      describes basic semantics, and shows development- and production-time applications.
      <a href="progguide/language.html">The AspectJ Language</a>
-     describes join points, pointcuts, advice, and introduction, all features new to AOP. 
-     <a href="progguide/examples.html">Examples</a> walks you through the 
+     describes join points, pointcuts, advice, and introduction, all features new to AOP.
+     <a href="progguide/examples.html">Examples</a> walks you through the
      examples included with the documentation, and there are two short
      chapters on useful <a href="progguide/idioms.html">Idioms</a> and a
      few <a href="progguide/pitfalls.html">Pitfalls</a>
@@ -92,7 +92,7 @@
      the <a href="progguide/quick.html">Quick Reference</a>
      summarizes AspectJ syntax,
      the <a href="progguide/semantics.html">Language Semantics</a>
-     best describes AspectJ usage, and 
+     best describes AspectJ usage, and
      <a href="progguide/implementation.html">Implementation Notes</a>
      describes how
      the current version is limited to code the compiler controls.</td>
 
 <tr> <td><a href="devguide/index.html">Development Environment Guide</a>
 <br/>
-         
+
          (printable <a href="devguide/printable.html">html</a>)
      </td>
-     <td>This is a guide to  
+     <td>This is a guide to
      <a href="devguide/ajc-ref.html">ajc</a>, the command-line compiler;
      <a href="devguide/ajbrowser.html">ajbrowser</a>, the stand-alone
-     GUI for compiling and viewing crosscutting structure; 
+     GUI for compiling and viewing crosscutting structure;
      and the <a href="devguide/antTasks.html">Ant tasks</a>
      for building AspectJ programs.
      </td>
 
 <tr> <td><a href="pdguide/index.html">Problem Diagnosis Guide</a>
 <br/>
-         
+
          (printable <a href="pdguide/printable.html">html</a>)
      </td>
-     <td>This has a guide to  
+     <td>This has a guide to
      the various features available such as messages and trace to help you both solve problems
      with you own programs and report bugs to the AspectJ team.
      </td>
 
 <tr> <td>README's
      </td>
-     <td>Changes and porting guide for AspectJ 
+     <td>Changes and porting guide for AspectJ
+        <a href="README-198.html">1.9.8</a>,
         <a href="README-197.html">1.9.7</a>,
         <a href="README-196.html">1.9.6</a>,
         <a href="README-195.html">1.9.5</a>,
 <tr> <td><a href="examples/">Examples</a>
      </td>
      <td>AspectJ code to demonstrate some language features and implement
-     JavaBean properties, the Observer pattern, a tracing library, 
+     JavaBean properties, the Observer pattern, a tracing library,
      and a game application where aspects handle display updating.
      </td> </tr>
 
      </tr>
 <tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a> source code
      </td>
-     <td>Source code for AspectJ is available 
-         under the open-source 
+     <td>Source code for AspectJ is available
+         under the open-source
          <a href="https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt">Eclipse Public License v 2.0</a>
          license from the Git
          repositories for the AspectJ project. See the
 <a name="resources"></a>
 <h3>Other AspectJ resources</h3>
 <table border="1">
-<tr> <th>Resources</th><th>Description</th> 
+<tr> <th>Resources</th><th>Description</th>
      </tr>
-<tr> <td>Mail lists 
+<tr> <td>Mail lists
          </td>
      <td>
          AspectJ users discuss tips and
          AspectJ developers discuss issues with developing
          the AspectJ tools on
          <a href="mailto:aspectj-dev@eclipse.org">
-          aspectj-dev@eclipse.org</a>.           
+          aspectj-dev@eclipse.org</a>.
          To get occasional emails about AspectJ releases
-         and relevant events, subscribe to 
+         and relevant events, subscribe to
          <tt>aspectj-announce@eclipse.org</tt>.
-         To view list archives or subscribe to the list, go to 
+         To view list archives or subscribe to the list, go to
          <a href="http://eclipse.org/aspectj">
                  the AspectJ home page</a>.
-                To find archived emails, use the Eclipse site 
+                To find archived emails, use the Eclipse site
                 <a href="http://www.eclipse.org/search/search.cgi">search page</a>.
        </td></tr>
 <tr> <td><a href="http://bugs.eclipse.org/bugs">Bug database</a>
      Bugs all users should know about are
      <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;keywords=info">
       flagged with the "info" keyword</a>.
-     See the 
+     See the
      <a href="faq.html#q:ajcbugs">
-       FAQ entry</a> for instructions on submitting compiler bugs.     
+       FAQ entry</a> for instructions on submitting compiler bugs.
      </td> </tr>
 
 <tr> <td> <a href="http://aosd.net">http://aosd.net</a> - the AOSD web site
      </td>
      <td>This site has discussion and announcements related to
-         aspect-oriented software development (AOSD) in general.  
+         aspect-oriented software development (AOSD) in general.
          Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
          to get and publish notices about AOSD
          workshops, conferences, and technology releases.
 <a name="paths"></a>
 <h3>Suggested paths for those new to AspectJ</h3>
 <p/>
-   To learn the AspectJ language, read the 
+   To learn the AspectJ language, read the
     <a href="progguide/index.html">Programming Guide</a>,
     keeping the <a href="progguide/semantics.html">Semantics appendix</a>
     nearby as the best reference for AspectJ usage.
     Focus initially on the join point model and
     pointcuts, concepts AOP adds to OOP.
-    To read about how the <a href="examples/">examples</a> work, 
+    To read about how the <a href="examples/">examples</a> work,
     see the <a href="progguide/examples.html">Examples </a> section
     in the <a href="progguide/index.html">Programming Guide</a>.
-    View and navigate the crosscutting structure using 
+    View and navigate the crosscutting structure using
        <a href="http://eclipse.org/ajdt">AJDT</a>; if you can't use Eclipse, try
     the <code>ajbrowser</code> structure viewer, as described in
     the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of
     the <a href="devguide/index.html">Development Environment Guide</a>.
 <p/>
-    To start using AspectJ with your own code, 
+    To start using AspectJ with your own code,
     modify the example aspects to apply to your classes.
     As you learn,
-    use the compiler's <code>-Xlint</code> flags to catch some common 
-    mistakes.  (Understand that the 
+    use the compiler's <code>-Xlint</code> flags to catch some common
+    mistakes.  (Understand that the
     <a href="progguide/implementation.html">current implementation</a>
     is limited to code the compiler controls.)
 <p>
-   To plan how to adopt AspectJ into a project, read the 
+   To plan how to adopt AspectJ into a project, read the
     <a href="progguide/index.html">Programming Guide</a>
-   on development- and production-time aspects 
-   and the <a href="faq.html">FAQ</a> entries for 
+   on development- and production-time aspects
+   and the <a href="faq.html">FAQ</a> entries for
    <a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
    <a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
    the Development tools sections
    (<a href="faq.html#q:integrateWithDevTools">one</a>,
-    <a href="faq.html#devtools">two</a>, 
-    <a href="faq.html#ltw">Load-time weaving</a> 
+    <a href="faq.html#devtools">two</a>,
+    <a href="faq.html#ltw">Load-time weaving</a>
     ), and
    <a href="faq.html#q:opensource">AspectJ as open-source</a>.
 </p>