aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2021-10-09 09:43:49 +0200
committerAlexander Kriegisch <Alexander@Kriegisch.name>2024-01-06 10:09:11 +0100
commit9c37014d62687a5083b1810185469ed8f0f94eda (patch)
treecefa88c3c751e1f94fae11d68e2d1b06fdccb2ad /docs
parentd4a6906b3012fac6e4dbaca5854fc59ba0d67e47 (diff)
downloadaspectj-9c37014d62687a5083b1810185469ed8f0f94eda.tar.gz
aspectj-9c37014d62687a5083b1810185469ed8f0f94eda.zip
Add README-198.adoc, README-199.adoc
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs')
-rw-r--r--docs/dist/doc/README-198.adoc86
-rw-r--r--docs/dist/doc/README-198.html152
-rw-r--r--docs/dist/doc/README-199.adoc94
-rw-r--r--docs/dist/doc/README-199.html158
-rw-r--r--docs/dist/doc/index.adoc2
5 files changed, 182 insertions, 310 deletions
diff --git a/docs/dist/doc/README-198.adoc b/docs/dist/doc/README-198.adoc
new file mode 100644
index 000000000..c700ee311
--- /dev/null
+++ b/docs/dist/doc/README-198.adoc
@@ -0,0 +1,86 @@
+== AspectJ 1.9.8
+
+_© Copyright 2022 Contributors. All rights reserved._
+
+_Release info: 1.9.8 available 11-Feb-2022_
+
+Please note, that Bugzilla for issue management is deprecated, and new issues should be filed as
+https://github.com/eclipse/org.aspectj/issues/new[GitHub issues]. The list of issues addressed for 1.9.8 can be found
+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] and
+https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.8[here for GitHub issues].
+
+=== New features
+
+AspectJ 1.9.8 supports https://openjdk.java.net/projects/jdk/17/[Java 17] and its final and review features, such as:
+
+* Sealed classes (final in Java 17, previews in Java 15, 16 and AspectJ 1.9.7)
+* Pattern matching for `switch`
+
+=== Improvements
+
+The `--release N` 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.
+
+The following new properties can improve performance, e.g. Spring start-up time:
+
+* `org.aspectj.apache.bcel.useSingleRepositoryInstance`
+* `org.aspectj.apache.bcel.useUnavailableClassesCache`
+* `org.aspectj.apache.bcel.ignoreCacheClearRequests`
+
+For now, they all default to `false` for backward compatibility. This might change in a future Aspect release, if user
+feedback is positive and no negative side effects are found. Please try using them as much as you can and report back
+questions (to the AspectJ users mailing list) or problems (as a GitHub issue), if any. Thanks to Stefan Starke for his
+contribution. See also https://github.com/eclipse/org.aspectj/pull/37[PR #37].
+
+=== Code examples
+
+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):
+
+* https://github.com/eclipse/org.aspectj/tree/master/tests/features198/compiler_release[Cross-compilation to legacy JDK]:
+ An example class which only works correctly on JDK 8 when compiled with `--release 8` due to API changes in
+ the JDK. Simply `-source 8 -target 8` would not be enough in this case.
+* https://github.com/eclipse/org.aspectj/tree/master/tests/features198/java17[Pattern matching for `switch`]
+
+=== Other changes and bug fixes
+
+* The AspectJ compiler `ajc` (contained in the `aspectjtools` library) no longer works on JDKs 8 to 10. The minimum
+ compile-time requirement is now 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 when compiling plain
+ Java code or using plain Java ITD constructs which do not require the AspectJ runtime `aspectjrt`, but the compiler
+ itself needs JDK 11+. Just like in previous AspectJ versions, both the runtime `aspectjrt` and the load-time weaver
+ `aspectjweaver` still only require JRE 8+.
+* Document build profiles and properties in _docs/developer/BUILD.md_
+* Add a guide for setting up an AspectJ development environment in _docs/developer/IDE.md_
+* Fix https://github.com/eclipse/org.aspectj/issues/105[issue #105]: Compilation fails when using an aspect library via
+ `-aspectpath` in combination with introducing an annotation via ITD. This was broken since version 1.9.5 and fixed in
+ 1.9.8.RC3.
+* Fix https://github.com/eclipse/org.aspectj/issues/68[issue #68]: Correctly process class files containing
+ https://openjdk.java.net/jeps/309[dynamic class-file constants (JEP 309)], which were introduced in Java 11 and broken
+ in AspectJ ever since their introduction in 1.9.2. Java itself currently does not use "condy" and neither do other
+ widespread JVM languages. Byte code engineering libraries like ASM or Byte Buddy and some instrumentation tools like
+ JaCoCo can however produce condy code. Therefore, in order to create a regression test, we actually had to
+ https://github.com/eclipse/org.aspectj/blob/de63b63d/tests/bugs198/github_68/Generator.java#L50-L61[craft a condy
+ class with ASM].
+* Thanks to Andrey Turbanov for several clean code contributions and to Dmitry Mikhaylov for fixing a potential
+ concurrency problem.
+
+=== AspectJ usage hints
+
+==== Use LTW on Java 16+
+
+Please note that if you want to use load-time weaving on Java 16+, the weaving agent collides with
+https://openjdk.java.net/jeps/396[JEP 396 (Strongly Encapsulate JDK Internals by Default)]. Therefore, you need to set
+the JVM parameter `--add-opens java.base/java.lang=ALL-UNNAMED` 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.
+
+==== Compile with Java preview features
+
+For features marked as preview on a given JDK, you need to compile with `ajc --enable-preview` and run with
+`java --enable-preview` on that JDK.
+
+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.
diff --git a/docs/dist/doc/README-198.html b/docs/dist/doc/README-198.html
deleted file mode 100644
index 6b79b5ab9..000000000
--- a/docs/dist/doc/README-198.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!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 <tt>switch</tt></li>
-</ul>
-
-<h2>Improvements</h2>
-
-<p>
- 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>
-
-<p>
- The following new properties can improve performance, e.g. Spring start-up time:
-</p>
-<ul>
- <li><tt>org.aspectj.apache.bcel.useSingleRepositoryInstance</tt></li>
- <li><tt>org.aspectj.apache.bcel.useUnavailableClassesCache</tt></li>
- <li><tt>org.aspectj.apache.bcel.ignoreCacheClearRequests</tt></li>
-</ul>
-<p>
- For now, they all default to <tt>false</tt> for backward compatibility. This might change in a future Aspect release,
- if user feedback is positive and no negative side effects are found. Please try using them as much as you can and
- report back questions (to the AspectJ users mailing list) or problems (as a GitHub issue), if any. Thanks to Stefan
- Starke for his contribution. See also <a href="https://github.com/eclipse/org.aspectj/pull/37">PR #37</a>.
-</p>
-
-
-<h2>Code examples</h2>
-
-<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>Other changes and bug fixes</h2>
-
-<ul>
- <li>
- The AspectJ compiler <tt>ajc</tt> (contained in the <tt>aspectjtools</tt> library) no longer works on JDKs 8 to 10.
- The minimum compile-time requirement is now 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 when
- compiling plain Java code or using plain Java ITD constructs which do not require the AspectJ runtime
- <tt>aspectjrt</tt>, but the compiler itself needs JDK 11+. Just like in previous AspectJ versions, both the runtime
- <tt>aspectjrt</tt> and the load-time weaver <tt>aspectjweaver</tt> still only require JRE 8+.
- </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>
- Fix <a href="https://github.com/eclipse/org.aspectj/issues/105">issue #105</a>: Compilation fails when using an
- aspect library via <tt>-aspectpath</tt> in combination with introducing an annotation via ITD. This was broken since
- version 1.9.5 and fixed in 1.9.8.RC3.
- </li>
- <li>
- Fix <a href="https://github.com/eclipse/org.aspectj/issues/68">issue #68</a>: Correctly process class files
- containing <a href="https://openjdk.java.net/jeps/309">dynamic class-file constants (JEP 309)</a>, which were
- introduced in Java 11 and broken in AspectJ ever since their introduction in 1.9.2. Java itself currently does not
- use "condy" and neither do other widespread JVM languages. Byte code engineering libraries like ASM or Byte Buddy
- and some instrumentation tools like JaCoCo can however produce condy code. Therefore, in order to create a
- regression test, we actually had to
- <a href="https://github.com/eclipse/org.aspectj/blob/de63b63d/tests/bugs198/github_68/Generator.java#L50-L61">
- craft a condy class with ASM</a>.
- </li>
- <li>
- Thanks to Andrey Turbanov for several clean code contributions and to Dmitry Mikhaylov for fixing a potential
- concurrency problem.
- </li>
-</ul>
-
-<h2>AspectJ usage hints</h2>
-
-<h3>Use LTW on Java 16+</h3>
-
-<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>
-
-<h3>Compile with Java preview features</h3>
-
-<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>
-
-<hr>
-
-<p>
- <b>Available:</b> 1.9.8 available 11-Feb-2022
-</p>
-
-</body>
-
-</html>
diff --git a/docs/dist/doc/README-199.adoc b/docs/dist/doc/README-199.adoc
new file mode 100644
index 000000000..132f0e082
--- /dev/null
+++ b/docs/dist/doc/README-199.adoc
@@ -0,0 +1,94 @@
+== AspectJ 1.9.9.1
+
+_© Copyright 2022 Contributors. All rights reserved._
+
+_Release info: 1.9.9.1 available 31-Mar-2022_
+
+Bugfix release for some compiler options related to the Java Platform Module System (JPMS) which were not working, most
+importantly `--add-modules`, `--add-exports` and `--add-reads`. See
+https://github.com/eclipse/org.aspectj/issues/145[issue #145].
+
+This probably was broken for a long time. AspectJ still is not boasting extensive JPMS support or test coverage, but
+this improvement seems substantial enough to justify a minor release, instead of keeping users waiting for the next
+regular release.
+
+== AspectJ 1.9.9
+
+_© Copyright 2022 Contributors. All rights reserved._
+
+_Release info: 1.9.9 available 24-Mar-2022_
+
+Please note that Bugzilla for issue management is deprecated and new issues should be filed as
+https://github.com/eclipse/org.aspectj/issues/new[GitHub issues]. The list of issues addressed for 1.9.9 can be found
+here:
+
+* https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.9[GitHub 1.9.9]
+* https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.9.1[GitHub 1.9.9.1]
+* 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.9[Bugzilla 1.9.9]
+
+=== New features
+
+AspectJ 1.9.9 supports https://openjdk.java.net/projects/jdk/18/[Java 18] and its final and preview features, such as:
+
+* Pattern matching for `switch` (preview 2)
+
+=== Improvements
+
+In annotation style aspects, asynchronous `proceed()` calls in `@Around` advice now works in threads created from within
+the advice. Previously, this was only working in native syntax aspects. There is still a limitation with regard to
+asynchronous proceed, if you do not create the thread in the advice but want to use e.g. an `ExecutorService` with its
+own thread pool. This still is not working in annotation style aspects, only in native syntax ones.
+
+See https://github.com/eclipse/org.aspectj/issues/128[issue #128] and
+https://github.com/eclipse/org.aspectj/pull/132[pull request #132] for more details.
+
+=== Code examples
+
+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):
+
+* https://github.com/eclipse/org.aspectj/tree/master/tests/features198/java17[Pattern matching for switch, preview 1]
+* https://github.com/eclipse/org.aspectj/tree/master/tests/features199/java18[Pattern matching for switch, preview 2]
+* https://github.com/eclipse/org.aspectj/tree/master/tests/bugs199/github_128[Asynchronous proceed in native vs.
+ annotation style syntax]
+
+=== Other changes and bug fixes
+
+* Fix a bug which led to ``NullPointerException``s, if too many JAR archives were on the classpath. Too many here means
+ the value of system property `org.aspectj.weaver.openarchives` (1,000 by default). The AspectJ compiler is meant to
+ close archives upon cache exhaustion and then re-open them, if it needs them again later. Re-opening was broken, but
+ now the compiler works reliably even for cache sizes as small as 20. See
+ https://github.com/eclipse/org.aspectj/issues/125[issue #125].
+* Improvements for `if()` pointcuts in annotation syntax, see issues
+ https://github.com/eclipse/org.aspectj/issues/115[#115], https://github.com/eclipse/org.aspectj/issues/120[#120],
+ https://github.com/eclipse/org.aspectj/issues/122[#122].
+* Thanks to Andrey Turbanov for several clean code contributions.
+
+=== AspectJ usage hints
+
+==== AspectJ compiler build system requirements
+
+Since 1.9.8, the AspectJ compiler `ajc` (contained in the `aspectjtools` library) no longer works on JDKs 8 to 10. The
+minimum compile-time requirement is now 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 when compiling
+plain Java code or using plain Java ITD constructs which do not require the AspectJ runtime `aspectjrt`, but the
+compiler itself needs JDK 11+. Just like in previous AspectJ versions, both the runtime `aspectjrt` and the load-time
+weaver `aspectjweaver` still only require JRE 8+.
+
+==== Use LTW on Java 16+
+
+Please note that if you want to use load-time weaving on Java 16+, the weaving agent collides with
+https://openjdk.java.net/jeps/396[JEP 396 (Strongly Encapsulate JDK Internals by Default)]. Therefore, you need to set
+the JVM parameter `--add-opens java.base/java.lang=ALL-UNNAMED` 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.
+
+==== Compile with Java preview features
+
+For features marked as preview on a given JDK, you need to compile with `ajc --enable-preview` and run with
+`java --enable-preview` on that JDK.
+
+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.
diff --git a/docs/dist/doc/README-199.html b/docs/dist/doc/README-199.html
deleted file mode 100644
index 2e05e104e..000000000
--- a/docs/dist/doc/README-199.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-
-<head>
-<title>AspectJ 1.9.9 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 2022 Contributors. All rights reserved.</small></div>
-
-<h1>AspectJ 1.9.9.1</h1>
-
-<p>
- Bugfix release for some compiler options related to the Java Platform Module System (JPMS) which were not working,
- most importantly <tt>--add-modules</tt>, <tt>--add-exports</tt> and <tt>--add-reads</tt>. See issue
- <a href="https://github.com/eclipse/org.aspectj/issues/145">#145</a>.
-</p>
-<p>
- This probably was broken for a long time. AspectJ still is not boasting extensive JPMS support or test coverage, but
- this improvement seems substantial enough to justify a minor release, instead of keeping users waiting for the next
- regular release.
-</p>
-
-<h1>AspectJ 1.9.9</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.9 can be found here:
- <ul>
- <li><a href="https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.9">GitHub 1.9.9</a></li>
- <li><a href="https://github.com/eclipse/org.aspectj/issues?q=is%3Aissue+is%3Aclosed++milestone%3A1.9.9.1">GitHub 1.9.9.1</a></li>
- <li><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.9">Bugzilla 1.9.9</a></li>
- </ul>
-</p>
-
-<h2>New features</h2>
-
-<p>
- AspectJ 1.9.9 supports <a href="https://openjdk.java.net/projects/jdk/18/">Java 18</a> and its final and preview
- features, such as:
-</p>
-<ul>
- <li>Pattern matching for <tt>switch</tt> (preview 2)</li>
-</ul>
-
-<h2>Improvements</h2>
-
-<p>
- In annotation style aspects, asynchronous <tt>proceed()</tt> calls in <tt>@Around</tt> advice now works in threads
- created from within the advice. Previously, this was only working in native syntax aspects. There is still a
- limitation with regard to asynchronous proceed, if you do not create the thread in the advice but want to use e.g.
- an <tt>ExecutorService</tt> with its own thread pool. This still is not working in annotation style aspects, only in
- native syntax ones.
-</p>
-<p>
- See <a href="https://github.com/eclipse/org.aspectj/issues/128">issue #128</a> and
- <a href="https://github.com/eclipse/org.aspectj/pull/132">pull request #132</a> for more details.
-</p>
-<h2>Code examples</h2>
-
-<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/java17">
- Pattern matching for switch, preview 1
- </a>
- </li>
- <li>
- <a href="https://github.com/eclipse/org.aspectj/tree/master/tests/features199/java18">
- Pattern matching for switch, preview 2
- </a>
- </li>
- <li>
- <a href="https://github.com/eclipse/org.aspectj/tree/master/tests/bugs199/github_128">
- Asynchronous proceed in native vs. annotation style syntax
- </a>
- </li>
-</ul>
-
-<h2>Other changes and bug fixes</h2>
-
-<ul>
- <li>
- Fix a bug which led to <tt>NullPointerException</tt>s if too many JAR archives were on the classpath. Too many here
- means the value system property <tt>org.aspectj.weaver.openarchives</tt> (1,000 by default). The AspectJ compiler is
- meant to close archives upon cache exhaustion and then re-open them if it needs them again later. Re-opening was
- broken, now the compiler works reliably even for cache sizes as small as 20. See issue
- <a href="https://github.com/eclipse/org.aspectj/issues/125">#125</a>.
- </li>
- <li>
- Improvements for <tt>if()</tt> pointcuts in annotation syntax, see issues
- <a href="https://github.com/eclipse/org.aspectj/issues/115">#115</a>,
- <a href="https://github.com/eclipse/org.aspectj/issues/120">#120</a>,
- <a href="https://github.com/eclipse/org.aspectj/issues/122">#122</a>.
- </li>
- <li>
- Thanks to Andrey Turbanov for several clean code contributions.
- </li>
-</ul>
-
-<h2>AspectJ usage hints</h2>
-
-<h3>AspectJ compiler build system requirements</h3>
-
-<p>
- Since 1.9.7, the AspectJ compiler <tt>ajc</tt> (contained in the <tt>aspectjtools</tt> library) no longer works on
- JDKs 8 to 10. The minimum compile-time requirement is now 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
- when compiling plain Java code or using plain Java ITD constructs which do not require the AspectJ runtime
- <tt>aspectjrt</tt>, but the compiler itself needs JDK 11+. Just like in previous AspectJ versions, both the runtime
- <tt>aspectjrt</tt> and the load-time weaver <tt>aspectjweaver</tt> still only require JRE 8+.
-</p>
-
-<h3>Use LTW on Java 16+</h3>
-
-<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> and related
- subsequent JEPs. 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>
-
-<h3>Compile with Java preview features</h3>
-
-<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>
-
-<hr>
-
-<p>
- <b>Available:</b> 1.9.9 on 24-Mar-2022, 1.9.9.1 on 31-Mar-2022
-</p>
-
-</body>
-
-</html>
diff --git a/docs/dist/doc/index.adoc b/docs/dist/doc/index.adoc
index 8576bba57..4c905ce2b 100644
--- a/docs/dist/doc/index.adoc
+++ b/docs/dist/doc/index.adoc
@@ -87,6 +87,8 @@ each join point. See also the link:weaver-api/index.html[Weaver API]
language, tools, and project.
|README's |Changes and porting guide for AspectJ
+xref:README-199.adoc[1.9.9.1],
+xref:README-199.adoc[1.9.9], xref:README-198.adoc[1.9.8],
xref:README-197.adoc[1.9.7], xref:README-196.adoc[1.9.6],
xref:README-195.adoc[1.9.5], xref:README-194.adoc[1.9.4],
xref:README-193.adoc[1.9.3], xref:README-192.adoc[1.9.2],