<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>AspectJ 1.9.6 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> © Copyright 2020 Contributors. All rights reserved. </small></div> <h1>AspectJ 1.9.6</h1> <p>The full list of resolved issues in 1.9.6 is available <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.6">here</a></h2>.</p> <p>AspectJ 1.9.6 supports Java14. Java14 introduces records, but you must activate support for that via an <tt>--enable-preview</tt> flag when using the compiler and attempting to run the resultant classes: Here is <tt>Code.java</tt>: <pre><code> =======8<========= public record Person(String firstName, String lastName, int age) {} =======8<========= =======8<========= public class UsingPersonRecord { public static void main(String[] argv) { Person p = new Person("A","B",99); System.out.println(p); System.out.println(p.firstName()); } } =======8<========= =======8<========= public aspect TraceRecordComponents { before(): execution(public * *()) { System.out.println(thisJoinPointStaticPart); } } =======8<========= </code></pre> <p>Compile it with: <pre><code> $ ajc --enable-preview -14 Person.java UsingPersonRecord.java TraceRecordComponents.java </code></pre> <p>Now run it: <pre><code> $ java --enable-preview UsingPersonRecord execution(String Person.toString()) Person[firstName=A, lastName=B, age=99] execution(String Person.firstName()) A </code></pre> <p>Available: 1.9.6 available 22-Jul-2020</p> <br><br> <!-- ============================== --> </body> </html>