]> source.dussan.org Git - aspectj.git/commitdiff
Add missing release notes for 1.8.12, 1.8.13, 1.8.14
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Thu, 15 Feb 2024 11:38:48 +0000 (18:38 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Thu, 15 Feb 2024 11:41:51 +0000 (18:41 +0700)
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>
docs/index.adoc
docs/release/README-1.8.12.adoc [new file with mode: 0644]
docs/release/README-1.8.13.adoc [new file with mode: 0644]
docs/release/README-1.8.14.adoc [new file with mode: 0644]

index 32a8d2001338d3abaa86797dcefe797b081c4d30..b278a47e788f51ef7f8eb86e1d70c8d3805c7080 100644 (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],
diff --git a/docs/release/README-1.8.12.adoc b/docs/release/README-1.8.12.adoc
new file mode 100644 (file)
index 0000000..1aa0ede
--- /dev/null
@@ -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.
diff --git a/docs/release/README-1.8.13.adoc b/docs/release/README-1.8.13.adoc
new file mode 100644 (file)
index 0000000..67fcd8b
--- /dev/null
@@ -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.
diff --git a/docs/release/README-1.8.14.adoc b/docs/release/README-1.8.14.adoc
new file mode 100644 (file)
index 0000000..ddcd2cb
--- /dev/null
@@ -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.