|
|
@@ -34,8 +34,8 @@ |
|
|
|
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> |
|
|
|
<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> |
|
|
|
<p> |
|
|
|
For features marked as preview on a given JDK, you need to compile with <tt>ajc --enable-preview</tt> and run with |
|
|
@@ -47,12 +47,15 @@ |
|
|
|
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> |
|
|
|
|
|
|
|
<h2>Improvements</h2> |
|
|
|
|
|
|
|
<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. |
|
|
|
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> |
|
|
|
<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 |
|
|
@@ -86,14 +89,16 @@ |
|
|
|
|
|
|
|
<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. |
|
|
|
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>Allowed JAR saving if <tt>-proceedOnError</tt> is specified</li> |
|
|
|
<li>Allow JAR saving if <tt>-proceedOnError</tt> is specified</li> |
|
|
|
</ul> |
|
|
|
|
|
|
|
<p> |