From 433beb72ccbc609d6d4bd9cee07d8a8985286830 Mon Sep 17 00:00:00 2001 From: Alexander Kriegisch Date: Mon, 11 Dec 2023 09:49:02 +0700 Subject: Add AspectJ 1.9.21 release notes Signed-off-by: Alexander Kriegisch --- docs/dist/doc/README-1921.html | 127 +++++++++++++++++++++++++++++++++++++++++ docs/dist/doc/index.html | 1 + 2 files changed, 128 insertions(+) create mode 100644 docs/dist/doc/README-1921.html (limited to 'docs') diff --git a/docs/dist/doc/README-1921.html b/docs/dist/doc/README-1921.html new file mode 100644 index 000000000..e2b9d41a1 --- /dev/null +++ b/docs/dist/doc/README-1921.html @@ -0,0 +1,127 @@ + + + + +AspectJ 1.9.21 Readme + + + + +
© Copyright 2023 Contributors. All rights reserved.
+ +

AspectJ 1.9.21

+ +

+ Please note that Bugzilla for issue management is deprecated and new issues should be filed as + GitHub issues. + The list of issues addressed for 1.9.21 can be found here: +

+

+ +

New features

+ +

+ AspectJ 1.9.21 supports Java 21, its final features and a + subset of preview features, such as: +

+ + +

+ Unfortunately, even after holding back the AspectJ release for 3 months after JDK 21 general availability, waiting for + Eclipse JDT Core and the Eclipse Java Compiler (ECJ) to catch up with Java 21 language features, even with the Java 21 + officially supported in Eclipse 2023-12, some preview features are still unimplemented in ECJ: +

+ + +

+ As soon as these preview features are part of the upstream ECJ we depend on, we hope to publish another AspectJ + release to support them in the AspectJ Compiler (AJC), too. +

+ +

Improvements

+ + + +

Other changes and bug fixes

+ + + +

AspectJ usage hints

+ +

AspectJ compiler build system requirements

+ +

+ Since 1.9.21, the AspectJ compiler ajc (contained in the aspectjtools library) no longer works on + JDKs 11 to 16. The minimum compile-time requirement is now JDK 17 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 17+. Just like in previous AspectJ versions, both the runtime + aspectjrt and the load-time weaver aspectjweaver still only require JRE 8+. +

+

+ History: Since 1.9.7, the AspectJ compiler ajc needed JDK 11+, before then JDK 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 + JEP 396 (Strongly Encapsulate JDK Internals by Default) and related + subsequent JEPs. 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. +

+ +
+ +

+ Available: 1.9.21 on 11-Dec-2023 +

+ + + + diff --git a/docs/dist/doc/index.html b/docs/dist/doc/index.html index 234d168d6..e8e2d2387 100644 --- a/docs/dist/doc/index.html +++ b/docs/dist/doc/index.html @@ -136,6 +136,7 @@ README's Changes and porting guide for AspectJ + 1.9.21, 1.9.20 and 1.9.20.1, 1.9.19, 1.9.9 and 1.9.9.1, -- cgit v1.2.3