AspectJ 1.8 Release Review

Type: 
Release
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, April 16, 2014
Project: 
Release: 

AspectJ 1.8

Description: 

In previous AspectJ major releases the first milestone normally tolerates weaving bytecode for the comparable Java level whilst the ability to compile source code for that Java level comes later. However, AspectJ 1.8.0.M1 is a Java 8 compiler. So why change the approach this time? Some consumers of AspectJ are choosing to exploit Java8 library features even though they are not using Java8 language constructs in their source. The Eclipse JDT compiler (in eclipse 4.3) actually includes a number of changes to facilitate this (basically compiling with -source 1.7 but on top of a 1.8 JRE). The changes are necessary because the 1.8 classes include metadata that the 1.7 compiler just isn't expecting. For example default method implementations in interfaces. In order to support this mode of working AspectJ would need to update to the Eclipse 4.3 compiler. However, performing upgrades of the compiler inside AspectJ is non trivial and to avoid doing the upgrade to 4.3 and then doing a further upgrade to the Java8 compiler, we decided to jump straight to the Java8 compiler which already includes these changes.