aboutsummaryrefslogtreecommitdiffstats
path: root/docs/dist
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2021-06-04 10:08:54 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2021-06-04 10:08:54 +0700
commit9131c030bd77797b3593dee984ac75821055a44d (patch)
tree4ca35abfcdcb949efaa7c15ed15bccb9e1b2f261 /docs/dist
parent82df3f0fc9842758f15f12299c9113e48f1ccb5c (diff)
downloadaspectj-9131c030bd77797b3593dee984ac75821055a44d.tar.gz
aspectj-9131c030bd77797b3593dee984ac75821055a44d.zip
Add release notes for 1.9.7
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs/dist')
-rw-r--r--docs/dist/doc/README-197.html120
-rw-r--r--docs/dist/doc/index.html1
2 files changed, 121 insertions, 0 deletions
diff --git a/docs/dist/doc/README-197.html b/docs/dist/doc/README-197.html
new file mode 100644
index 000000000..2316ab580
--- /dev/null
+++ b/docs/dist/doc/README-197.html
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+
+<head>
+<title>AspectJ 1.9.7 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.7</h1>
+
+<p>
+ AspectJ (binaries, source code, documentation) is now distributed under the
+ <a href="https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt">Eclipse Public License v 2.0</a>.
+</p>
+
+<h2>New features</h2>
+
+<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:
+</p>
+<ul>
+ <li>text blocks (final 15)</li>
+ <li>records (preview 15, final 16)</li>
+ <li><tt>instanceof</tt> pattern matching (preview 15, final 16)</li>
+ <li>hidden classes (final 15)</li>
+ <li>sealed classes (preview 15, preview 16)</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>
+<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/features195/textblock">
+ AspectJ 1.9.5: text blocks</a></li>
+ <li><a href="https://github.com/eclipse/org.aspectj/tree/master/tests/features196/java14">
+ AspectJ 1.9.6: records, <tt>instanceof</tt> patterns</a></li>
+ <li><a href="https://github.com/eclipse/org.aspectj/tree/master/tests/features197/java15">
+ AspectJ 1.9.7: hidden classes, sealed classes</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>Organisational and internal changes</h2>
+
+<p>
+ For AspectJ 1.9.7, we implemented a lot of internal changes concerning the build and release process, most of which
+ are not visible in the product itself but will help us to more easily maintain and release the product in the future
+ and more easily on-boarding new developers or contributors. For example:
+</p>
+<ul>
+ <li>The main repository has been moved to <a href="https://github.com/eclipse/org.aspectj">GitHub</a>, i.e. you can
+ open bug reports, feature requests and pull requests there now.</li>
+ <li>The Maven build has been improved, i.e. it is now easier to build and contribute to the product. Developers can
+ just import the Maven project and no longer depend on Eclipse to build and test AspectJ, but can e.g. also use
+ IntelliJ IDEA.</li>
+ <li>Continuous integration builds now run on GitHub for different JDK versions, also for pull requests. I.e. both
+ maintainers and contributors get to know if their changes break any tests.</li>
+ <li>We can build releases and deploy them directly to Sonatype OSSRH (snapshots) or Maven Central (releases) with
+ Maven now, i.e. it should be much easier in the future to publish development versions in order to enable users to
+ re-test fixed bugs or try new features.</li>
+ <li>All tests are portable now, i.e. they correctly run on Windows, too. This enables developers and contributors to make
+ a choice if they want to work on Linux or on Windows.</li>
+</ul>
+
+<h2>Other changes and bug fixes</h2>
+
+<ul>
+ <li>Remove legacy JRockit support.</li>
+ <li>Support Windows 10 and Windows Server 2016/2019 in installer. Those versions were not detected until now, which
+ led to bogus Windows batch files forwarding only 9 AJC parameters to the Java process via
+ <tt>%1 %2 %3 %4 %5 %6 %7 %8 %9</tt> instead of <tt>%*</tt>.</li>
+ <li>AJdoc (AspectJ's javadoc generator add-on for aspects) now supports the JDK 16 javadoc generator.</li>
+ <li>Fix <tt>serialVersionUID</tt> initialization for Java 9+</li>
+ <li>AJC (AspectJ Compiler) usage texts sometimes used to be printed twice and they were printed too often, e.g. on
+ top of every compile error. This has been fixed. Furthermore, the partly outdated usage text is now basically the
+ same as ECJ (Eclipse Java Compiler), which AJC is a fork of, plus AspectJ-specific additions which are added during
+ runtime.</li>
+ <li>Source and javadoc JARs distributed together with the AspectJ artifacts on Maven Central are now more accurate and
+ more complete with regard to what is included (ASM, JDT Core) and how package names have been relocated.</li>
+ <li>Fix sample code formatting issues (indentation) throughout the documentation.</li>
+</ul>
+
+<p>
+ Available: 1.9.7 available ##-###-2021
+</p>
+
+</body>
+
+</html>
diff --git a/docs/dist/doc/index.html b/docs/dist/doc/index.html
index f8309f335..8192f36ac 100644
--- a/docs/dist/doc/index.html
+++ b/docs/dist/doc/index.html
@@ -138,6 +138,7 @@
<tr> <td>README's
</td>
<td>Changes and porting guide for AspectJ
+ <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>,
<a href="README-194.html">1.9.4</a>,