Browse Source

Add missing release notes for 1.8.12, 1.8.13, 1.8.14

I found those in HTML only on the Eclipse web server, but not in the Git
repository. So, I manually converted them to ADOC.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tags/V1_9_21_2
Alexander Kriegisch 3 months ago
parent
commit
12099c5d95
4 changed files with 106 additions and 7 deletions
  1. 8
    7
      docs/index.adoc
  2. 72
    0
      docs/release/README-1.8.12.adoc
  3. 14
    0
      docs/release/README-1.8.13.adoc
  4. 12
    0
      docs/release/README-1.8.14.adoc

+ 8
- 7
docs/index.adoc View File

@@ -97,13 +97,14 @@ JDK to run

|Release notes |Release notes, describing new features, improvements, bugfixes per AspectJ version: +
+
xref:release/README-1.9.21.adoc[1.9.21],
xref:release/README-1.9.20.adoc[1.9.20 and 1.9.20.1], xref:release/README-1.9.19.adoc[1.9.19],
xref:release/README-1.9.9.adoc[1.9.9 and 1.9.9.1], xref:release/README-1.9.8.adoc[1.9.8],
xref:release/README-1.9.7.adoc[1.9.7], xref:release/README-1.9.6.adoc[1.9.6],
xref:release/README-1.9.5.adoc[1.9.5], xref:release/README-1.9.4.adoc[1.9.4],
xref:release/README-1.9.3.adoc[1.9.3], xref:release/README-1.9.2.adoc[1.9.2],
xref:release/README-1.9.1.adoc[1.9.1], xref:release/README-1.9.0.adoc[1.9.0],
xref:release/README-1.9.21.adoc[1.9.21], xref:release/README-1.9.20.adoc[1.9.20 / 1.9.20.1],
xref:release/README-1.9.19.adoc[1.9.19], xref:release/README-1.9.9.adoc[1.9.9 / 1.9.9.1],
xref:release/README-1.9.8.adoc[1.9.8], xref:release/README-1.9.7.adoc[1.9.7],
xref:release/README-1.9.6.adoc[1.9.6], xref:release/README-1.9.5.adoc[1.9.5],
xref:release/README-1.9.4.adoc[1.9.4], xref:release/README-1.9.3.adoc[1.9.3],
xref:release/README-1.9.2.adoc[1.9.2], xref:release/README-1.9.1.adoc[1.9.1],
xref:release/README-1.9.0.adoc[1.9.0], xref:release/README-1.8.14.adoc[1.8.14],
xref:release/README-1.8.13.adoc[1.8.13], xref:release/README-1.8.12.adoc[1.8.12],
xref:release/README-1.8.11.adoc[1.8.11], xref:release/README-1.8.10.adoc[1.8.10],
xref:release/README-1.8.9.adoc[1.8.9], xref:release/README-1.8.8.adoc[1.8.8],
xref:release/README-1.8.7.adoc[1.8.7], xref:release/README-1.8.6.adoc[1.8.6],

+ 72
- 0
docs/release/README-1.8.12.adoc View File

@@ -0,0 +1,72 @@
= AspectJ 1.8.12

_© Copyright 2017 Contributors. All rights reserved._

_Release info: 1.8.12 available 20-Oct-2017_

This is a small release that includes a backport of some 1.9.0 work that improves the performance of Spring AOP (or any
system consuming AspectJ in a similar way to Spring).

Dave Syer recently created a series of benchmarks for checking the speed of Spring-AspectJ:
https://github.com/dsyer/spring-boot-aspectj

Here we can see the numbers for AspectJ 1.8.11 (on an older Macbook Pro):

[source, text]
....
Benchmark (scale) Mode Cnt Score Error Units
StartupBenchmark.ltw N/A avgt 10 2.656 ~ 0.166 s/op
StartupBenchmark.ltw_100 N/A avgt 10 2.618 ~ 0.063 s/op
StartupBenchmark.spring v0_10 avgt 10 2.071 ~ 0.044 s/op
StartupBenchmark.spring v1_10 avgt 10 2.210 ~ 0.058 s/op
StartupBenchmark.spring v1_100 avgt 10 2.260 ~ 0.068 s/op
StartupBenchmark.spring v10_50 avgt 10 2.933 ~ 0.039 s/op
StartupBenchmark.spring v20_50 avgt 10 3.832 ~ 0.094 s/op
StartupBenchmark.spring v20_100 avgt 10 3.959 ~ 0.047 s/op
StartupBenchmark.spring a0_10 avgt 10 2.073 ~ 0.028 s/op
StartupBenchmark.spring a1_10 avgt 10 2.729 ~ 0.061 s/op
StartupBenchmark.spring a1_100 avgt 10 2.750 ~ 0.029 s/op
StartupBenchmark.spring a10_50 avgt 10 7.153 ~ 0.075 s/op
StartupBenchmark.spring a10_100 avgt 10 7.152 ~ 0.059 s/op
StartupBenchmark.spring a20_50 avgt 10 11.430 ~ 0.105 s/op
StartupBenchmark.spring a20_100 avgt 10 11.497 ~ 0.162 s/op
....

So this is the average **startup time** of an app affected by aspects applying to the beans involved. Where numbers are
referenced the first is the number of aspects/pointcuts and the second is the number of beans. The 'a' indicates an
annotation based pointcut vs a non-annotation based pointcut ('v'). Notice things are much worse for annotation based
pointcuts. At 20 pointcuts and 50 beans the app is 9 seconds slower to startup.

In AspectJ 1.8.12 and 1.9.0.RC1 some work has been done here. The key change is to recognize that the use of annotations
with runtime retention is much more likely than annotations with class level retention. Retrieving annotations with
class retention is costly because we must open the bytes for the class file and dig around in there (vs runtime
retention which are immediately accessible by reflection on the types). In 1.8.11 the actual type of the annotation
involved in the matching is ignored and the code will fetch *all* the annotations on the type/method/field being matched
against. So even if the match is looking for a runtime retention annotation, we were doing the costly thing of fetching
any class retention annotations. In 1.8.12/1.9.0.RC1 we take the type of the match annotation into account - allowing us
to skip opening the classfiles in many cases. There is also some deeper work on activating caches that were not
previously being used correctly but the primary change is factoring in the annotation type.

What difference does that make? AspectJ 1.8.12:

[source, text]
....
Benchmark (scale) Mode Cnt Score Error Units
StartupBenchmark.ltw N/A avgt 10 2.620 ~ 0.130 s/op
StartupBenchmark.ltw_100 N/A avgt 10 2.567 ~ 0.038 s/op
StartupBenchmark.spring v0_10 avgt 10 2.044 ~ 0.027 s/op
StartupBenchmark.spring v1_10 avgt 10 2.195 ~ 0.026 s/op
StartupBenchmark.spring v1_100 avgt 10 2.237 ~ 0.039 s/op
StartupBenchmark.spring v10_50 avgt 10 2.774 ~ 0.038 s/op
StartupBenchmark.spring v20_50 avgt 10 3.488 ~ 0.116 s/op
StartupBenchmark.spring v20_100 avgt 10 3.642 ~ 0.080 s/op
StartupBenchmark.spring a0_10 avgt 10 2.067 ~ 0.034 s/op
StartupBenchmark.spring a1_10 avgt 10 2.159 ~ 0.030 s/op
StartupBenchmark.spring a1_100 avgt 10 2.207 ~ 0.020 s/op
StartupBenchmark.spring a10_50 avgt 10 2.471 ~ 0.031 s/op
StartupBenchmark.spring a10_100 avgt 10 2.517 ~ 0.045 s/op
StartupBenchmark.spring a20_50 avgt 10 2.842 ~ 0.049 s/op
StartupBenchmark.spring a20_100 avgt 10 2.916 ~ 0.145 s/op
....

Look at the a20_100 case - instead of impacting start time by 9 seconds, it impacts it by 1 second.

+ 14
- 0
docs/release/README-1.8.13.adoc View File

@@ -0,0 +1,14 @@
= AspectJ 1.8.13

_© Copyright 2017 Contributors. All rights reserved._

_Release info: 1.8.13 available 15-Nov-2017_

Small release that:

* Dials back the performance optimizations for Spring AOP. One of them was taking things too far and has caused an
issue link:https://jira.spring.io/browse/SPR-16161[SPR-16161]. This wasn't the main performance enhancement for
Spring AOP though so the numbers are still very close to those shown in the 1.8.12 readme.

* Includes better toleration of new JDK versions. If the versions are coming out thick and fast we need older
AspectJs to cope when simply running on new JDKs they haven't encountered before.

+ 12
- 0
docs/release/README-1.8.14.adoc View File

@@ -0,0 +1,12 @@
= AspectJ 1.8.14

_© Copyright 2019 Contributors. All rights reserved._

_Release info: 1.8.14 available 6-Mar-2019_

Small release that:

* Will skip `module-info.class` and class files under `META-INF` that you find in multi-release JARs, as described in
link:https://bugs.eclipse.org/bugs/show_bug.cgi?id=545033[bug 545033]. This enables some usage of AspectJ 8 operating
on JARs containing some of these features from later Java (but where the main set of classfiles in a JAR are Java 8
or lower). For proper treatment of Java 9 code, please use AspectJ 1.9 or later.

Loading…
Cancel
Save