<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>AspectJ 1.9.3 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 2018 Contributors. All rights reserved. </small></div> <p>The full list of resolved issues in 1.9.3 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.3">here</a></h2>.</p> <p>AspectJ 1.9.3 supports Java12. Java12 introduces the new switch expression syntax, 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>Switch3.java</tt>: <pre><code> =========8<========= public class Switch3 { public static void main(String[] argv) { System.out.println(one(Color.R)); System.out.println(one(Color.G)); System.out.println(one(Color.B)); System.out.println(one(Color.Y)); } public static int one(Color color) { int result = switch(color) { case R -> foo(0); case G -> foo(1); case B -> foo(2); default -> foo(3); }; return result; } public static final int foo(int i) { return i+1; } } enum Color { R, G, B, Y; } aspect X { int around(): call(* foo(..)) { return proceed()*3; } } =========8<========= </code></pre> Compile it with: <pre><code> $ ajc --enable-preview -showWeaveInfo -12 Switch3.java Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:12) advised by around advice from 'X' (Switch3.java:30) Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:13) advised by around advice from 'X' (Switch3.java:30) Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:14) advised by around advice from 'X' (Switch3.java:30) Join point 'method-call(int Switch3.foo(int))' in Type 'Switch3' (Switch3.java:15) advised by around advice from 'X' (Switch3.java:30) </code></pre> Now run it: <pre><code> $ java --enable-preview Switch3 3 6 9 12 </code></pre> <p>Available: 1.9.3.RC1 available 7-Mar-2019</p> <br><br> <!-- ============================== --> </body> </html>