<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>AspectJ 1.8.0 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 2014 Contributors. All rights reserved. </small></div> <h1>AspectJ 1.8.0 Readme</h1> <p>The full list of resolved issues in 1.8.0 is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;product=AspectJ;target_milestone=1.8.0.M1;target_milestone=1.8.0;">here</a></h2>.</p> <ul> <li>1.8.0 available 17-Apr-2014 <li>1.8.0.RC1 available 18-Mar-2014 <li>1.8.0.M1 available 29-Jul-2013 </ul> <h2>Notable changes</h2> <h3>Java 8 compilation</h3> <p>AspectJ has been updated to the latest available Eclipse Java compiler version that compiles Java8 code (the version available as a feature patch on top of Eclipse 4.3.2).</p> </p> <p>Here is a sample AspectJ8 program:</p> <pre><code> === 8< ==== C.java ==== 8< === import java.util.Arrays; interface I { // Default method default void foo() { System.out.println("ABC"); } } public class C implements I{ public static void main(String[] args) { new C().foo(); // Lambda Runnable r = () -> { System.out.println("hello world!"); }; r.run(); // Used Java8 b97 Arrays.asList(MyClass.doSomething()).forEach((p) -> System.out.println(p)); } } aspect X { before(): execution(* I.foo()) { System.out.println("I.foo running"); } before(): staticinitialization(!X) { System.out.println("Clazz "+thisJoinPointStaticPart); } } class Utils { public static int compareByLength(String in, String out) { return in.length() - out.length(); } } class MyClass { public static String[] doSomething() { String []args = new String[]{"4444","333","22","1"}; // Method reference Arrays.sort(args,Utils::compareByLength); return args; } } === 8< ==== C.java ==== 8< === </code></pre> <!-- ============================== --> </body> </html>