Browse Source

Add AspectJ 1.9.8 release notes

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tags/V1_9_8_RC1
Alexander Kriegisch 2 years ago
parent
commit
e16efa31d4
3 changed files with 161 additions and 55 deletions
  1. 2
    2
      docs/dist/doc/README-197.html
  2. 105
    0
      docs/dist/doc/README-198.html
  3. 54
    53
      docs/dist/doc/index.html

+ 2
- 2
docs/dist/doc/README-197.html View 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>

+ 105
- 0
docs/dist/doc/README-198.html View File

@@ -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>

+ 54
- 53
docs/dist/doc/index.html View 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.
@@ -21,28 +21,28 @@
<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>
@@ -54,37 +54,37 @@
<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>
@@ -100,13 +100,13 @@

<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>
@@ -114,10 +114,10 @@

<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>
@@ -137,7 +137,8 @@

<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>,
@@ -196,7 +197,7 @@
<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>

@@ -215,8 +216,8 @@
</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
@@ -250,9 +251,9 @@
<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
@@ -262,14 +263,14 @@
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>
@@ -288,15 +289,15 @@
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.
@@ -309,39 +310,39 @@
<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>

Loading…
Cancel
Save