aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/pom.xml4
-rw-r--r--testing/src/test/java/org/aspectj/testing/AntSpec.java12
-rw-r--r--testing/src/test/java/org/aspectj/testing/RunSpec.java15
3 files changed, 24 insertions, 7 deletions
diff --git a/testing/pom.xml b/testing/pom.xml
index 38784790a..c5e082255 100644
--- a/testing/pom.xml
+++ b/testing/pom.xml
@@ -53,6 +53,10 @@
<artifactId>asm</artifactId>
</dependency>
<dependency>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-commons</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.aspectj</groupId>
<artifactId>testing-client</artifactId>
<version>${project.version}</version>
diff --git a/testing/src/test/java/org/aspectj/testing/AntSpec.java b/testing/src/test/java/org/aspectj/testing/AntSpec.java
index 7a6bd3cd9..33668d509 100644
--- a/testing/src/test/java/org/aspectj/testing/AntSpec.java
+++ b/testing/src/test/java/org/aspectj/testing/AntSpec.java
@@ -98,9 +98,15 @@ public class AntSpec implements ITestStep {
// setup aj.dir "modules" folder
p.setUserProperty("aj.root", new File("..").getAbsolutePath());
- // On Java 16+, LTW no longer works without this parameter. Add the argument here and not in AjcTestCase::run,
- // because even if 'useLTW' and 'useFullLTW' are not set, we might in the future have tests for weaver attachment
- // during runtime. See also docs/release/README-1.8.7.html.
+ // On Java 16+, LTW did not work on AspectJ 1.9.7 to 1.9.21 without this parameter. So, we added the argument here
+ // and not in AjcTestCase::run, because without 'useLTW' or 'useFullLTW', there might have been a need for weaver
+ // attachment during runtime. See also docs/release/README-1.8.7.adoc.
+ //
+ // Since AspectJ 1.9.21.1, '--add-opens' is no longer necessary, because we found a workaround for defining
+ // classes in arbitrary class loaders. But some tests, e.g. AtAjLTWTests.testLTWUnweavable, still use
+ // ClassLoader::defineClass to inject dynamically generated classes into the current class loader. Therefore, we
+ // still set the parameters, so they can be used on demand - not for LTW as such, but for class injection. See
+ // also tests/java5/ataspectj/ataspectj/UnweavableTest.java.
//
// Attention: Ant 1.6.3 under Linux neither likes "" (empty string) nor " " (space), on Windows it would not be
// a problem. So we use "_dummy" Java system properties, even though they pollute the command line.
diff --git a/testing/src/test/java/org/aspectj/testing/RunSpec.java b/testing/src/test/java/org/aspectj/testing/RunSpec.java
index 593c5b957..4d7526f44 100644
--- a/testing/src/test/java/org/aspectj/testing/RunSpec.java
+++ b/testing/src/test/java/org/aspectj/testing/RunSpec.java
@@ -68,14 +68,21 @@ public class RunSpec implements ITestStep {
if (vmargs == null)
vmargs = "";
- // On Java 16+, LTW no longer works without this parameter. Add the argument here and not in AjcTestCase::run,
- // because even if 'useLTW' and 'useFullLTW' are not set, we might in the future have tests for weaver attachment
- // during runtime. See also docs/release/README-1.8.7.html.
+ // On Java 16+, LTW did not work on AspectJ 1.9.7 to 1.9.21 without this parameter. So, we added the argument here
+ // and not in AjcTestCase::run, because without 'useLTW' or 'useFullLTW', there might have been a need for weaver
+ // attachment during runtime. See also docs/release/README-1.8.7.adoc.
+ //
+ // Since AspectJ 1.9.21.1, '--add-opens' is no longer necessary, because we found a workaround for defining
+ // classes in arbitrary class loaders. But some tests, e.g. AtAjLTWTests.testLTWUnweavable, still use
+ // ClassLoader::defineClass to inject dynamically generated classes into the current class loader. Therefore, we
+ // still set the parameters, so they can be used on demand - not for LTW as such, but for class injection. See
+ // also tests/java5/ataspectj/ataspectj/UnweavableTest.java.
//
// The reason for setting this parameter for Java 9+ instead of 16+ is that it helps to avoid the JVM printing
// unwanted illegal access warnings during weaving in 'useFullLTW' mode, either making existing tests fail or
// having to assert on the warning messages.
- vmargs += is16VMOrGreater() ? " --add-opens java.base/java.lang=ALL-UNNAMED" : "";
+ //
+ // vmargs += is16VMOrGreater() ? " --add-opens java.base/java.lang=ALL-UNNAMED" : "";
AjcTestCase.RunResult rr = inTestCase.run(getClassToRun(), getModuleToRun(), args, vmargs, getClasspath(), getModulepath(), useLtw, "true".equalsIgnoreCase(usefullltw));