aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java4
-rw-r--r--testing/src/test/java/org/aspectj/testing/JavaVersionSpecificXMLBasedAjcTestCase.java48
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava10OrLater.java30
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava11OrLater.java30
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava12OrLater.java30
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava13OrLater.java30
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14Only.java38
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15Only.java38
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16Only.java40
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17Only.java40
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18Only.java40
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19Only.java40
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20Only.java40
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21Only.java42
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21OrLater.java27
-rw-r--r--testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava9OrLater.java30
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc190/Ajc190Tests.java10
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java2
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc190/ModuleTests.java10
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc190/SanityTests19.java2
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc191/Ajc191Tests.java10
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc191/AllTestsAspectJ191.java2
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc191/SanityTestsJava10.java3
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1919/Ajc1919TestsJava.java7
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1919/AllTestsAspectJ1919.java14
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1919/Java19PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1919/SanityTestsJava19.java9
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc192/Ajc192Tests.java9
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc192/AllTestsAspectJ192.java2
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc192/SanityTestsJava11.java11
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1920/Ajc1920TestsJava.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1920/AllTestsAspectJ1920.java13
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1920/Java20PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1920/SanityTestsJava20.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1921/Ajc1921TestsJava.java24
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java14
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc1921/SanityTestsJava21.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc193/Ajc193Tests.java12
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc193/AllTestsAspectJ193.java7
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc193/Java13Tests.java31
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc193/SanityTestsJava12.java93
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc195/AllTestsAspectJ195.java3
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc195/SanityTestsJava13.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc196/Ajc196Tests.java11
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc196/AllTestsAspectJ196.java16
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc196/Java14PreviewFeaturesTests.java11
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc196/SanityTestsJava14.java11
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc197/Ajc197TestsJava.java24
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc197/AllTestsAspectJ197.java15
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc197/Java16PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava15.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava16.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java18
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/AllTestsAspectJ198.java16
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Java11Tests.java9
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/CompileWithReleaseTests.java7
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc198/SanityTestsJava17.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc199/Ajc199TestsJava.java7
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc199/AllTestsAspectJ199.java15
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc199/Java18PreviewFeaturesTests.java8
-rw-r--r--tests/src/test/java/org/aspectj/systemtest/ajc199/SanityTestsJava18.java8
-rw-r--r--tests/src/test/resources/org/aspectj/systemtest/ajc193/sanity-tests-12.xml69
-rw-r--r--util/src/main/java/org/aspectj/util/LangUtil.java10
72 files changed, 505 insertions, 870 deletions
diff --git a/taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java b/taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java
index 777c76517..d6b938b5c 100644
--- a/taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java
+++ b/taskdefs/src/main/java/org/aspectj/tools/ant/taskdefs/AjcTask.java
@@ -251,9 +251,9 @@ public class AjcTask extends MatchingTask {
public static final String COMMAND_EDITOR_NAME = AjcTask.class.getName() + ".COMMAND_EDITOR";
// AspectJ_JDK_Update: Check minimum supported ECJ version, currently 1.3
- static final int JAVA_VERSION_MIN = 3;
+ public static final int JAVA_VERSION_MIN = 3;
// AspectJ_JDK_Update: Check maximum supported ECJ version
- static final int JAVA_VERSION_MAX = 21;
+ public static final int JAVA_VERSION_MAX = 21;
static final String[] SOURCE_INPUTS;
static final String[] TARGET_INPUTS;
diff --git a/testing/src/test/java/org/aspectj/testing/JavaVersionSpecificXMLBasedAjcTestCase.java b/testing/src/test/java/org/aspectj/testing/JavaVersionSpecificXMLBasedAjcTestCase.java
new file mode 100644
index 000000000..a4f5ce7ff
--- /dev/null
+++ b/testing/src/test/java/org/aspectj/testing/JavaVersionSpecificXMLBasedAjcTestCase.java
@@ -0,0 +1,48 @@
+/* *******************************************************************
+ * Copyright (c) 2024 Contributors
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v 2.0
+ * which accompanies this distribution and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
+ * ******************************************************************/
+package org.aspectj.testing;
+
+import static org.aspectj.util.LangUtil.isVMGreaterOrEqual;
+import static org.aspectj.util.LangUtil.isVMLessOrEqual;
+
+/**
+ * A test case which only runs on specific Java versions
+ *
+ * @author Alexander Kriegisch
+ */
+public abstract class JavaVersionSpecificXMLBasedAjcTestCase extends XMLBasedAjcTestCase {
+ private final int minimumJavaVersion;
+ private final int maximumJavaVersion;
+
+ protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion) {
+ this(minimumJavaVersion, Integer.MAX_VALUE);
+ }
+
+ protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion, int maximumJavaVersion) {
+ this.minimumJavaVersion = minimumJavaVersion;
+ this.maximumJavaVersion = maximumJavaVersion;
+ }
+
+ @Override
+ public void setUp() throws Exception {
+ boolean withinBounds = isVMGreaterOrEqual(minimumJavaVersion) && isVMLessOrEqual(maximumJavaVersion);
+ if (!withinBounds) {
+ String errorMessage = "These tests must run on Java version ";
+ if (maximumJavaVersion == Integer.MAX_VALUE)
+ errorMessage += minimumJavaVersion + " or greater";
+ else if (maximumJavaVersion == minimumJavaVersion)
+ errorMessage += minimumJavaVersion + " only";
+ else
+ errorMessage += "range " + minimumJavaVersion + " to " + maximumJavaVersion;
+ throw new IllegalStateException(errorMessage);
+ }
+ super.setUp();
+ }
+
+}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava10OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava10OrLater.java
deleted file mode 100644
index c7d67e4ab..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava10OrLater.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2018 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Ensure sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava10OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(10))
- throw new IllegalStateException("These tests should be run on Java 10 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava11OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava11OrLater.java
deleted file mode 100644
index 08f0e0d78..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava11OrLater.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2018 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava11OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(11))
- throw new IllegalStateException("These tests should be run on Java 11 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava12OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava12OrLater.java
deleted file mode 100644
index fdd94de51..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava12OrLater.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2018 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Ensure sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava12OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(12))
- throw new IllegalStateException("These tests should be run on Java 12 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava13OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava13OrLater.java
deleted file mode 100644
index 635785c20..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava13OrLater.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2019 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava13OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(13))
- throw new IllegalStateException("These tests should be run on Java 13 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14Only.java
deleted file mode 100644
index e4c864049..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14Only.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava14Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 15
- throw new IllegalStateException(
- "These tests need a Java 14 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 15
- /*
- if (!LangUtil.isVMGreaterOrEqual(14) || LangUtil.isVMGreaterOrEqual(15)) {
- throw new IllegalStateException(
- "These tests should be run on Java 14 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14OrLater.java
deleted file mode 100644
index 7f6b7c7d3..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava14OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2020 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava14OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(14))
- throw new IllegalStateException("These tests should be run on Java 14 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15Only.java
deleted file mode 100644
index dd6ef21e5..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15Only.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava15Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 16
- throw new IllegalStateException(
- "These tests need a Java 15 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 16
- /*
- if (!LangUtil.isVMGreaterOrEqual(15) || LangUtil.isVMGreaterOrEqual(16)) {
- throw new IllegalStateException(
- "These tests should be run on Java 15 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15OrLater.java
deleted file mode 100644
index ad5f3e108..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava15OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava15OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(15))
- throw new IllegalStateException("These tests should be run on Java 15 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16Only.java
deleted file mode 100644
index 794d5276d..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16Only.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava16Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 17
- throw new IllegalStateException(
- "These tests need a Java 16 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 17
- /*
- if (!LangUtil.isVMGreaterOrEqual(16) || LangUtil.isVMGreaterOrEqual(17)) {
- throw new IllegalStateException(
- "These tests should be run on Java 16 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16OrLater.java
deleted file mode 100644
index 3a763af47..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava16OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava16OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(16))
- throw new IllegalStateException("These tests should be run on Java 16 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17Only.java
deleted file mode 100644
index eeb681b6d..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17Only.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava17Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 18
- throw new IllegalStateException(
- "These tests need a Java 17 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 18
- /*
- if (!LangUtil.isVMGreaterOrEqual(17) || LangUtil.isVMGreaterOrEqual(18)) {
- throw new IllegalStateException(
- "These tests should be run on Java 17 only " +
- "(e.g. because they use version-specific preview features)"
- );
- super.setUp();
- }
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17OrLater.java
deleted file mode 100644
index bb32898b1..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava17OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2021 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava17OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(17))
- throw new IllegalStateException("These tests should be run on Java 17 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18Only.java
deleted file mode 100644
index 21c1dce4f..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18Only.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava18Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 19
- throw new IllegalStateException(
- "These tests need a Java 18 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 19
- /*
- if (!LangUtil.isVMGreaterOrEqual(18) || LangUtil.isVMGreaterOrEqual(19)) {
- throw new IllegalStateException(
- "These tests should be run on Java 18 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18OrLater.java
deleted file mode 100644
index 65fcc325e..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava18OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava18OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(18))
- throw new IllegalStateException("These tests should be run on Java 18 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19Only.java
deleted file mode 100644
index e931bc3f9..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19Only.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava19Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 20
- throw new IllegalStateException(
- "These tests need a Java 19 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 20
- /*
- if (!LangUtil.isVMGreaterOrEqual(19) || LangUtil.isVMGreaterOrEqual(20)) {
- throw new IllegalStateException(
- "These tests should be run on Java 19 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19OrLater.java
deleted file mode 100644
index e33862f32..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava19OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava19OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(19))
- throw new IllegalStateException("These tests should be run on Java 19 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20Only.java
deleted file mode 100644
index 43b50a6bc..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20Only.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava20Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // Activate this block after upgrading to JDT Core Java 21
- throw new IllegalStateException(
- "These tests need a Java 20 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- // Activate this block before upgrading to JDT Core Java 21
- /*
- if (!LangUtil.isVMGreaterOrEqual(20) || LangUtil.isVMGreaterOrEqual(21)) {
- throw new IllegalStateException(
- "These tests should be run on Java 20 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- */
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20OrLater.java
deleted file mode 100644
index 1289d9672..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava20OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2022 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava20OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(20))
- throw new IllegalStateException("These tests should be run on Java 20 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21Only.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21Only.java
deleted file mode 100644
index 3014e1a96..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21Only.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2023 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava21Only extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- // AspectJ_JDK_Update
- // Activate this block after upgrading to JDT Core Java 22
- /*
- throw new IllegalStateException(
- "These tests need a Java 21 level AspectJ compiler " +
- "(e.g. because they use version-specific preview features). " +
- "This compiler does not support preview features of a previous version anymore."
- );
- */
- // AspectJ_JDK_Update
- // Activate this block before upgrading to JDT Core Java 22
- if (!LangUtil.isVMGreaterOrEqual(21) || LangUtil.isVMGreaterOrEqual(22)) {
- throw new IllegalStateException(
- "These tests should be run on Java 21 only " +
- "(e.g. because they use version-specific preview features)"
- );
- }
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21OrLater.java
deleted file mode 100644
index 11fc3ba7f..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava21OrLater.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2023 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Alexander Kriegisch
- */
-public abstract class XMLBasedAjcTestCaseForJava21OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(21))
- throw new IllegalStateException("These tests should be run on Java 21 or later");
- super.setUp();
- }
-
-}
diff --git a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava9OrLater.java b/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava9OrLater.java
deleted file mode 100644
index d5decf8b9..000000000
--- a/testing/src/test/java/org/aspectj/testing/XMLBasedAjcTestCaseForJava9OrLater.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2018 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *
- * Contributors:
- * Andy Clement
- * ******************************************************************/
-package org.aspectj.testing;
-
-import org.aspectj.util.LangUtil;
-
-/**
- * Makes sure tests are running on the right level of JDK.
- *
- * @author Andy Clement
- */
-public abstract class XMLBasedAjcTestCaseForJava9OrLater extends XMLBasedAjcTestCase {
-
- @Override
- public void setUp() throws Exception {
- if (!LangUtil.isVMGreaterOrEqual(9))
- throw new IllegalStateException("These tests should be run on Java 9 or later");
- super.setUp();
- }
-
-}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc190/Ajc190Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc190/Ajc190Tests.java
index 129cfaad8..14bd4ff12 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc190/Ajc190Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc190/Ajc190Tests.java
@@ -10,15 +10,17 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc190;
-import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava9OrLater;
-
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
+import org.aspectj.testing.XMLBasedAjcTestCase;
/**
* @author Andy Clement
*/
-public class Ajc190Tests extends XMLBasedAjcTestCaseForJava9OrLater {
+public class Ajc190Tests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Ajc190Tests() {
+ super(9);
+ }
public void testParamAnnosNegative() {
runTest("param annos negative");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java b/tests/src/test/java/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java
index 19e50688f..7a6982912 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java
@@ -17,13 +17,11 @@ public class AllTestsAspectJ190 {
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.0 tests");
- // $JUnit-BEGIN$
suite.addTest(Ajc190Tests.suite());
suite.addTest(SanityTests19.suite());
suite.addTest(EfficientTJPTests.suite());
suite.addTest(ModuleTests.suite());
suite.addTest(Annotations.suite());
- // $JUnit-END$
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc190/ModuleTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc190/ModuleTests.java
index a73c75077..3c53d53ca 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc190/ModuleTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc190/ModuleTests.java
@@ -7,16 +7,15 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc190;
+import junit.framework.Test;
import org.aspectj.apache.bcel.classfile.Attribute;
import org.aspectj.apache.bcel.classfile.Code;
import org.aspectj.apache.bcel.classfile.JavaClass;
import org.aspectj.apache.bcel.classfile.Method;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava9OrLater;
import org.aspectj.util.LangUtil;
-import junit.framework.Test;
-
/**
* Building and weaving with modules in the picture.
*
@@ -25,7 +24,10 @@ import junit.framework.Test;
* @author Andy Clement
*
*/
-public class ModuleTests extends XMLBasedAjcTestCaseForJava9OrLater {
+public class ModuleTests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public ModuleTests() {
+ super(9);
+ }
public void testBuildAModule() {
runTest("build a module");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc190/SanityTests19.java b/tests/src/test/java/org/aspectj/systemtest/ajc190/SanityTests19.java
index 38678b750..3dafa7f31 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc190/SanityTests19.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc190/SanityTests19.java
@@ -20,7 +20,7 @@ import junit.framework.Test;
* These are a copy of the earlier Sanity Tests created for 1.6 but these supply the -1.9 option
* to check code generation and modification with that version specified.
*/
-public class SanityTests19 extends org.aspectj.testing.XMLBasedAjcTestCase {
+public class SanityTests19 extends XMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(9).MAJOR;
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc191/Ajc191Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc191/Ajc191Tests.java
index 3158a954e..f4995a326 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc191/Ajc191Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc191/Ajc191Tests.java
@@ -10,15 +10,17 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc191;
-import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava10OrLater;
-
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
+import org.aspectj.testing.XMLBasedAjcTestCase;
/**
* @author Andy Clement
*/
-public class Ajc191Tests extends XMLBasedAjcTestCaseForJava10OrLater {
+public class Ajc191Tests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Ajc191Tests() {
+ super(10);
+ }
public void testVar1() {
runTest("var 1");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc191/AllTestsAspectJ191.java b/tests/src/test/java/org/aspectj/systemtest/ajc191/AllTestsAspectJ191.java
index 482d61270..bd6666466 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc191/AllTestsAspectJ191.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc191/AllTestsAspectJ191.java
@@ -17,10 +17,8 @@ public class AllTestsAspectJ191 {
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.1 tests");
- // $JUnit-BEGIN$
suite.addTest(Ajc191Tests.suite());
suite.addTest(SanityTestsJava10.suite());
- // $JUnit-END$
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc191/SanityTestsJava10.java b/tests/src/test/java/org/aspectj/systemtest/ajc191/SanityTestsJava10.java
index 79c6ba1ae..f01e07835 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc191/SanityTestsJava10.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc191/SanityTestsJava10.java
@@ -19,7 +19,7 @@ import junit.framework.Test;
*
* @author Andy Clement
*/
-public class SanityTestsJava10 extends org.aspectj.testing.XMLBasedAjcTestCase {
+public class SanityTestsJava10 extends XMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(10).MAJOR;
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
@@ -74,7 +74,6 @@ public class SanityTestsJava10 extends org.aspectj.testing.XMLBasedAjcTestCase {
checkVersion("A", Constants.ClassFileVersion.of(5).MAJOR, 0);
}
- // ///////////////////////////////////////
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(SanityTestsJava10.class);
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1919/Ajc1919TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc1919/Ajc1919TestsJava.java
index 5f471490d..df59b1136 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1919/Ajc1919TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1919/Ajc1919TestsJava.java
@@ -8,13 +8,16 @@
package org.aspectj.systemtest.ajc1919;
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava19OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc1919TestsJava extends XMLBasedAjcTestCaseForJava19OrLater {
+public class Ajc1919TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Ajc1919TestsJava() {
+ super(19);
+ }
public void testDummyJava19() {
//runTest("dummy Java 19");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1919/AllTestsAspectJ1919.java b/tests/src/test/java/org/aspectj/systemtest/ajc1919/AllTestsAspectJ1919.java
index 22e7b6184..1865cd765 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1919/AllTestsAspectJ1919.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1919/AllTestsAspectJ1919.java
@@ -9,6 +9,7 @@ package org.aspectj.systemtest.ajc1919;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
/**
@@ -16,19 +17,22 @@ import org.aspectj.util.LangUtil;
*/
public class AllTestsAspectJ1919 {
+ private static final int JAVA_VERSION = 19;
+
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.19 tests");
suite.addTest(Bugs1919Tests.suite());
- if (LangUtil.isVMGreaterOrEqual(19)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava19.suite());
suite.addTest(Ajc1919TestsJava.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(19) && !LangUtil.isVMGreaterOrEqual(20)) {
- suite.addTest(Java19PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java19PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1919/Java19PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc1919/Java19PreviewFeaturesTests.java
index 1207f5cc6..c579ad3d1 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1919/Java19PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1919/Java19PreviewFeaturesTests.java
@@ -9,15 +9,19 @@ package org.aspectj.systemtest.ajc1919;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava19Only;
/**
* @author Alexander Kriegisch
*/
-public class Java19PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava19Only {
+public class Java19PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(19);
+ public Java19PreviewFeaturesTests() {
+ super(19, 19);
+ }
+
public void testSwitchPatternMatchingPreview3Java() {
runTest("switch pattern matching preview 3 java");
checkVersion("SwitchPatternPreview3OK", classFileVersion.MAJOR, classFileVersion.PREVIEW_MINOR);
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1919/SanityTestsJava19.java b/tests/src/test/java/org/aspectj/systemtest/ajc1919/SanityTestsJava19.java
index 9f70c3ff2..4110f17b8 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1919/SanityTestsJava19.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1919/SanityTestsJava19.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc1919;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava19OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,13 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava19OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava19 extends XMLBasedAjcTestCaseForJava19OrLater {
-
+public class SanityTestsJava19 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(19).MAJOR;
+ public SanityTestsJava19() {
+ super(19);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc192/Ajc192Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc192/Ajc192Tests.java
index 4a227ab05..e01d5e88f 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc192/Ajc192Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc192/Ajc192Tests.java
@@ -10,23 +10,22 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc192;
+import junit.framework.Test;
import org.aspectj.apache.bcel.classfile.JavaClass;
import org.aspectj.apache.bcel.classfile.NestHost;
import org.aspectj.apache.bcel.classfile.NestMembers;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import junit.framework.Test;
-
/**
* @author Andy Clement
*/
public class Ajc192Tests extends XMLBasedAjcTestCase {
- public void testITDLambdas() throws Exception {
+ public void testITDLambdas() {
runTest("itd lambdas");
}
- public void test11Flags() throws Exception {
+ public void test11Flags() {
runTest("11flags");
}
@@ -82,8 +81,6 @@ public class Ajc192Tests extends XMLBasedAjcTestCase {
runTest("ptw - privileged same package");
}
- // ---
-
public static Test suite() {
return XMLBasedAjcTestCase.loadSuite(Ajc192Tests.class);
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc192/AllTestsAspectJ192.java b/tests/src/test/java/org/aspectj/systemtest/ajc192/AllTestsAspectJ192.java
index ef6db6278..c8972ff1c 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc192/AllTestsAspectJ192.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc192/AllTestsAspectJ192.java
@@ -17,10 +17,8 @@ public class AllTestsAspectJ192 {
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.2 tests");
- // $JUnit-BEGIN$
suite.addTest(Ajc192Tests.suite());
suite.addTest(SanityTestsJava11.suite());
- // $JUnit-END$
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc192/SanityTestsJava11.java b/tests/src/test/java/org/aspectj/systemtest/ajc192/SanityTestsJava11.java
index e0b9034f8..af00c3ab3 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc192/SanityTestsJava11.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc192/SanityTestsJava11.java
@@ -7,11 +7,10 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc192;
+import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava11OrLater;
-
-import junit.framework.Test;
/*
* Some very trivial tests that help verify things are OK.
@@ -20,9 +19,13 @@ import junit.framework.Test;
*
* @author Andy Clement
*/
-public class SanityTestsJava11 extends XMLBasedAjcTestCaseForJava11OrLater {
+public class SanityTestsJava11 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(11).MAJOR;
+ public SanityTestsJava11() {
+ super(11);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1920/Ajc1920TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc1920/Ajc1920TestsJava.java
index cc2770412..d00544b23 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1920/Ajc1920TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1920/Ajc1920TestsJava.java
@@ -8,13 +8,17 @@
package org.aspectj.systemtest.ajc1920;
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava20OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc1920TestsJava extends XMLBasedAjcTestCaseForJava20OrLater {
+public class Ajc1920TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ public Ajc1920TestsJava() {
+ super(20);
+ }
public void testDummyJava20() {
//runTest("dummy Java 20");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1920/AllTestsAspectJ1920.java b/tests/src/test/java/org/aspectj/systemtest/ajc1920/AllTestsAspectJ1920.java
index ae80c49bc..72fc857ab 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1920/AllTestsAspectJ1920.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1920/AllTestsAspectJ1920.java
@@ -9,26 +9,29 @@ package org.aspectj.systemtest.ajc1920;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
/**
* @author Alexander Kriegisch
*/
public class AllTestsAspectJ1920 {
+ private static final int JAVA_VERSION = 20;
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.20 tests");
suite.addTest(Bugs1920Tests.suite());
- if (LangUtil.isVMGreaterOrEqual(20)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava20.suite());
suite.addTest(Ajc1920TestsJava.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(20) && !LangUtil.isVMGreaterOrEqual(21)) {
- suite.addTest(Java20PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java20PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1920/Java20PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc1920/Java20PreviewFeaturesTests.java
index 1a305bce1..78ea35b88 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1920/Java20PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1920/Java20PreviewFeaturesTests.java
@@ -9,15 +9,19 @@ package org.aspectj.systemtest.ajc1920;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava20Only;
/**
* @author Alexander Kriegisch
*/
-public class Java20PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava20Only {
+public class Java20PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(20);
+ public Java20PreviewFeaturesTests() {
+ super(20, 20);
+ }
+
public void testSwitchPatternMatchingPreview4Java() {
runTest("switch pattern matching preview 4 java");
checkVersion("SwitchPatternPreview4OK", classFileVersion.MAJOR, classFileVersion.PREVIEW_MINOR);
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1920/SanityTestsJava20.java b/tests/src/test/java/org/aspectj/systemtest/ajc1920/SanityTestsJava20.java
index 6cd0fd6b7..cafdff62a 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1920/SanityTestsJava20.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1920/SanityTestsJava20.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc1920;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava20OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava20OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava20 extends XMLBasedAjcTestCaseForJava20OrLater {
+public class SanityTestsJava20 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(20).MAJOR;
+ public SanityTestsJava20() {
+ super(20);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Ajc1921TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Ajc1921TestsJava.java
index 466135dc2..e221df46e 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Ajc1921TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Ajc1921TestsJava.java
@@ -9,17 +9,23 @@ package org.aspectj.systemtest.ajc1921;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava21OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc1921TestsJava extends XMLBasedAjcTestCaseForJava21OrLater {
+public class Ajc1921TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(21);
+
+ public Ajc1921TestsJava() {
+ super(21);
+ }
public void testSwitchPatternMatchingPreview4Java() {
runTest("switch pattern matching preview 4 java");
- checkVersion("SwitchPatternPreview4OK", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
+ checkVersion("SwitchPatternPreview4OK", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testSwitchPatternMatchingPreview4Error() {
@@ -28,10 +34,10 @@ public class Ajc1921TestsJava extends XMLBasedAjcTestCaseForJava21OrLater {
public void testSwitchPatternMatchingPreview3Aspect() {
runTest("switch pattern matching preview 3 aspect");
- checkVersion("SwitchPatternPreview3Aspect", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
- checkVersion("Application", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
- checkVersion("Shape", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
- checkVersion("S", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
+ checkVersion("SwitchPatternPreview3Aspect", classFileVersion.MAJOR, classFileVersion.MINOR);
+ checkVersion("Application", classFileVersion.MAJOR, classFileVersion.MINOR);
+ checkVersion("Shape", classFileVersion.MAJOR, classFileVersion.MINOR);
+ checkVersion("S", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testSwitchPatternMatchingCaseLabelDominatedByPrecedingError() {
@@ -54,8 +60,8 @@ public class Ajc1921TestsJava extends XMLBasedAjcTestCaseForJava21OrLater {
public void testRecordPatternsPreview1Error() {
// https://github.com/eclipse-jdt/eclipse.jdt.core/issues/450 (fixed for preview 2 in Eclipse 2023-03, 4.27)
runTest("record patterns error");
- checkVersion("RecordPatternsPreview1Error", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
- checkVersion("Box", Constants.ClassFileVersion.of(21).MAJOR, Constants.ClassFileVersion.of(21).MINOR);
+ checkVersion("RecordPatternsPreview1Error", classFileVersion.MAJOR, classFileVersion.MINOR);
+ checkVersion("Box", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testRecordPatternsPreview1ExhaustivenessOK1() {
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java b/tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java
index 56e8b963a..a8166995b 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1921/AllTestsAspectJ1921.java
@@ -9,6 +9,7 @@ package org.aspectj.systemtest.ajc1921;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
// AspectJ_JDK_Update
@@ -28,18 +29,21 @@ import org.aspectj.util.LangUtil;
*/
public class AllTestsAspectJ1921 {
+ private static final int JAVA_VERSION = 21;
+
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.21 tests");
suite.addTest(Bugs1921Tests.suite());
- if (LangUtil.isVMGreaterOrEqual(21)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava21.suite());
suite.addTest(Ajc1921TestsJava.suite());
}
- // AspectJ_JDK_Update
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- // TODO: Comment out the following block when upgrading JDT Core to Java 22
- if (LangUtil.isVMGreaterOrEqual(21) && !LangUtil.isVMGreaterOrEqual(22)) {
- suite.addTest(Java21PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java21PreviewFeaturesTests.suite());
+ }
}
return suite;
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java
index 255583efd..2fd5e8ef8 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1921/Java21PreviewFeaturesTests.java
@@ -9,13 +9,17 @@ package org.aspectj.systemtest.ajc1921;
import junit.framework.Test;
import org.aspectj.systemtest.ajc10x.Ajc10xTests;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava21Only;
/**
* @author Alexander Kriegisch
*/
-public class Java21PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava21Only {
+public class Java21PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ public Java21PreviewFeaturesTests() {
+ super(21, 21);
+ }
public void testStringPatterns() {
runTest("string patterns");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc1921/SanityTestsJava21.java b/tests/src/test/java/org/aspectj/systemtest/ajc1921/SanityTestsJava21.java
index 2f4810e4e..0115abec8 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc1921/SanityTestsJava21.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc1921/SanityTestsJava21.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc1921;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava21OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava21OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava21 extends XMLBasedAjcTestCaseForJava21OrLater {
+public class SanityTestsJava21 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(21).MAJOR;
+ public SanityTestsJava21() {
+ super(21);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc193/Ajc193Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc193/Ajc193Tests.java
index 4f7bd8047..e8d3c5e1c 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc193/Ajc193Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc193/Ajc193Tests.java
@@ -7,19 +7,21 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc193;
-import java.io.File;
-
+import junit.framework.Test;
import org.aspectj.apache.bcel.classfile.JavaClass;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava10OrLater;
import org.aspectj.weaver.WeaverStateInfo;
-import junit.framework.Test;
+import java.io.File;
/**
* @author Andy Clement
*/
-public class Ajc193Tests extends XMLBasedAjcTestCaseForJava10OrLater {
+public class Ajc193Tests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Ajc193Tests() {
+ super(10);
+ }
public void testNestedAroundProceed() {
runTest("nested around proceed");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc193/AllTestsAspectJ193.java b/tests/src/test/java/org/aspectj/systemtest/ajc193/AllTestsAspectJ193.java
index 364136be9..403af7b9a 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc193/AllTestsAspectJ193.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc193/AllTestsAspectJ193.java
@@ -12,13 +12,18 @@ package org.aspectj.systemtest.ajc193;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.util.LangUtil;
public class AllTestsAspectJ193 {
+ private static final int JAVA_VERSION = 12;
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.3 tests");
suite.addTest(Ajc193Tests.suite());
- // suite.addTest(Java13Tests.suite());
+ // suite.addTest(Java12Tests.suite());
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
+ suite.addTest(SanityTestsJava12.suite());
+ }
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc193/Java13Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc193/Java13Tests.java
deleted file mode 100644
index 801d99291..000000000
--- a/tests/src/test/java/org/aspectj/systemtest/ajc193/Java13Tests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 Contributors
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- *******************************************************************************/
-package org.aspectj.systemtest.ajc193;
-
-import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava13OrLater;
-
-import junit.framework.Test;
-
-/**
- * @author Andy Clement
- */
-public class Java13Tests extends XMLBasedAjcTestCaseForJava13OrLater {
-
- // ---
-
- public static Test suite() {
- return XMLBasedAjcTestCase.loadSuite(Java13Tests.class);
- }
-
- @Override
- protected java.net.URL getSpecFile() {
- return getClassResource("ajc193.xml");
- }
-
-}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc193/SanityTestsJava12.java b/tests/src/test/java/org/aspectj/systemtest/ajc193/SanityTestsJava12.java
new file mode 100644
index 000000000..f3bf166a2
--- /dev/null
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc193/SanityTestsJava12.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
+ *******************************************************************************/
+package org.aspectj.systemtest.ajc193;
+
+import junit.framework.Test;
+import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
+import org.aspectj.testing.XMLBasedAjcTestCase;
+
+/*
+ * Some very trivial tests that help verify things are OK.
+ * These are a copy of the earlier Sanity Tests created for 1.6 but these supply the -12 option
+ * to check code generation and modification with that version specified.
+ *
+ * @author Alexander Kriegisch
+ */
+public class SanityTestsJava12 extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(12).MAJOR;
+
+ public SanityTestsJava12() {
+ super(12);
+ }
+
+ // Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
+ public void testSimpleJava_A() {
+ runTest("simple - a");
+ }
+
+ public void testSimpleJava_B() {
+ runTest("simple - b");
+ }
+
+ public void testSimpleCode_C() {
+ runTest("simple - c");
+ }
+
+ public void testSimpleCode_D() {
+ runTest("simple - d");
+ }
+
+ public void testSimpleCode_E() {
+ runTest("simple - e");
+ }
+
+ public void testSimpleCode_F() {
+ runTest("simple - f");
+ }
+
+ public void testSimpleCode_G() {
+ runTest("simple - g");
+ }
+
+ public void testSimpleCode_H() {
+ runTest("simple - h", true);
+ }
+
+ public void testSimpleCode_I() {
+ runTest("simple - i");
+ }
+
+ public void testVersionCorrect1() throws ClassNotFoundException {
+ runTest("simple - j");
+ checkVersion("A", bytecode_version_for_JDK_level, 0);
+ }
+
+ public void testVersionCorrect2() throws ClassNotFoundException {
+ runTest("simple - k");
+ checkVersion("A", bytecode_version_for_JDK_level, 0);
+ }
+
+ public void testVersionCorrect4() throws ClassNotFoundException { // check it is 49.0 when -1.5 is specified
+ runTest("simple - m");
+ checkVersion("A", Constants.ClassFileVersion.of(5).MAJOR, 0);
+ }
+
+
+ // ///////////////////////////////////////
+ public static Test suite() {
+ return XMLBasedAjcTestCase.loadSuite(SanityTestsJava12.class);
+ }
+
+ @Override
+ protected java.net.URL getSpecFile() {
+ return getClassResource("sanity-tests-12.xml");
+ }
+
+}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc195/AllTestsAspectJ195.java b/tests/src/test/java/org/aspectj/systemtest/ajc195/AllTestsAspectJ195.java
index 092160565..093247b62 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc195/AllTestsAspectJ195.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc195/AllTestsAspectJ195.java
@@ -16,11 +16,12 @@ import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTestsAspectJ195 {
+ private static final int JAVA_VERSION = 13;
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.5 tests");
suite.addTest(Ajc195Tests.suite());
- if (LangUtil.isVMGreaterOrEqual(13)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava13.suite());
}
return suite;
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc195/SanityTestsJava13.java b/tests/src/test/java/org/aspectj/systemtest/ajc195/SanityTestsJava13.java
index 34901eb00..f90fd3d3e 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc195/SanityTestsJava13.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc195/SanityTestsJava13.java
@@ -8,8 +8,8 @@
package org.aspectj.systemtest.ajc195;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava13OrLater;
import junit.framework.Test;
@@ -20,10 +20,14 @@ import junit.framework.Test;
*
* @author Andy Clement
*/
-public class SanityTestsJava13 extends XMLBasedAjcTestCaseForJava13OrLater {
+public class SanityTestsJava13 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(13).MAJOR;
+ public SanityTestsJava13() {
+ super(13);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc196/Ajc196Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc196/Ajc196Tests.java
index 5659b2931..60fe9e5ab 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc196/Ajc196Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc196/Ajc196Tests.java
@@ -7,16 +7,19 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc196;
+import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava14OrLater;
-
-import junit.framework.Test;
/**
* @author Andy Clement
*/
-public class Ajc196Tests extends XMLBasedAjcTestCaseForJava14OrLater {
+public class Ajc196Tests extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ public Ajc196Tests() {
+ super(14);
+ }
public void testNPE_558995() {
runTest("early resolution of supporting interfaces");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc196/AllTestsAspectJ196.java b/tests/src/test/java/org/aspectj/systemtest/ajc196/AllTestsAspectJ196.java
index 8e19afc14..34d02d8d2 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc196/AllTestsAspectJ196.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc196/AllTestsAspectJ196.java
@@ -7,6 +7,7 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc196;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
import junit.framework.Test;
@@ -16,19 +17,22 @@ import junit.framework.TestSuite;
* @author Andy Clement
*/
public class AllTestsAspectJ196 {
+ private static final int JAVA_VERSION = 14;
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.6 tests");
- if (LangUtil.isVMGreaterOrEqual(14)) {
- suite.addTest(Ajc196Tests.suite());
+ //suite.addTest(Bugs196Tests.suite());
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava14.suite());
+ suite.addTest(Ajc196Tests.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(14) && !LangUtil.isVMGreaterOrEqual(15)) {
- suite.addTest(Java14PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java14PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc196/Java14PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc196/Java14PreviewFeaturesTests.java
index 24b02101e..0d468f7f7 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc196/Java14PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc196/Java14PreviewFeaturesTests.java
@@ -7,18 +7,21 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc196;
+import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava14Only;
-
-import junit.framework.Test;
/**
* @author Alexander Kriegisch
*/
-public class Java14PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava14Only {
+public class Java14PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(14);
+ public Java14PreviewFeaturesTests() {
+ super(14, 14);
+ }
+
public void testRecords() {
runTest("simple record");
checkVersion("Person", classFileVersion.MAJOR, classFileVersion.PREVIEW_MINOR);
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc196/SanityTestsJava14.java b/tests/src/test/java/org/aspectj/systemtest/ajc196/SanityTestsJava14.java
index 13094e048..6fa8c06bb 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc196/SanityTestsJava14.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc196/SanityTestsJava14.java
@@ -7,11 +7,10 @@
*******************************************************************************/
package org.aspectj.systemtest.ajc196;
+import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava14OrLater;
-
-import junit.framework.Test;
/*
* Some very trivial tests that help verify things are OK.
@@ -20,10 +19,14 @@ import junit.framework.Test;
*
* @author Andy Clement
*/
-public class SanityTestsJava14 extends XMLBasedAjcTestCaseForJava14OrLater {
+public class SanityTestsJava14 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(14).MAJOR;
+ public SanityTestsJava14() {
+ super(14);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc197/Ajc197TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc197/Ajc197TestsJava.java
index 8a1f794f4..4150ea8b7 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc197/Ajc197TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc197/Ajc197TestsJava.java
@@ -9,47 +9,53 @@ package org.aspectj.systemtest.ajc197;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava16OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc197TestsJava extends XMLBasedAjcTestCaseForJava16OrLater {
+public class Ajc197TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(16);
+
+ public Ajc197TestsJava() {
+ super(16);
+ }
public void testHiddenClass() {
runTest("hidden class");
- checkVersion("HiddenClassDemo", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("HiddenClassDemo", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testTextBlock1() {
runTest("textblock 1");
- checkVersion("Code", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("Code", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testTextBlock2() {
runTest("textblock 2");
- checkVersion("Code2", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("Code2", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testRecords() {
runTest("simple record");
- checkVersion("Person", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("Person", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testRecords2() {
runTest("using a record");
- checkVersion("UsingPersonRecord", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("UsingPersonRecord", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testAdvisingRecords() {
runTest("advising records");
- checkVersion("TraceRecordComponents", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("TraceRecordComponents", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testInstanceofPatterns() {
runTest("instanceof patterns");
- checkVersion("Jep305", Constants.ClassFileVersion.of(16).MAJOR, Constants.ClassFileVersion.of(16).MINOR);
+ checkVersion("Jep305", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public static Test suite() {
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc197/AllTestsAspectJ197.java b/tests/src/test/java/org/aspectj/systemtest/ajc197/AllTestsAspectJ197.java
index 7feccc2e2..999071a9f 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc197/AllTestsAspectJ197.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc197/AllTestsAspectJ197.java
@@ -9,6 +9,7 @@ package org.aspectj.systemtest.ajc197;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
/**
@@ -16,21 +17,25 @@ import org.aspectj.util.LangUtil;
*/
public class AllTestsAspectJ197 {
+ private static final int JAVA_VERSION = 16;
+
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.7 tests");
+ //suite.addTest(Bugs197Tests.suite());
if (LangUtil.isVMGreaterOrEqual(15)) {
suite.addTest(SanityTestsJava15.suite());
}
- if (LangUtil.isVMGreaterOrEqual(16)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava16.suite());
suite.addTest(Ajc197TestsJava.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(16) && !LangUtil.isVMGreaterOrEqual(17)) {
- suite.addTest(Java16PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java16PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc197/Java16PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc197/Java16PreviewFeaturesTests.java
index f2c04e08c..7a8a61fd6 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc197/Java16PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc197/Java16PreviewFeaturesTests.java
@@ -9,15 +9,19 @@ package org.aspectj.systemtest.ajc197;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava16Only;
/**
* @author Alexander Kriegisch
*/
-public class Java16PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava16Only {
+public class Java16PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(16);
+ public Java16PreviewFeaturesTests() {
+ super(16, 16);
+ }
+
public void testSealedClassWithLegalSubclasses() {
runTest("sealed class with legal subclasses");
checkVersion("Employee", classFileVersion.MAJOR, classFileVersion.PREVIEW_MINOR);
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava15.java b/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava15.java
index d244ebea7..570b86511 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava15.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava15.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc197;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava15OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava15OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava15 extends XMLBasedAjcTestCaseForJava15OrLater {
+public class SanityTestsJava15 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(15).MAJOR;
+ public SanityTestsJava15() {
+ super(15);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava16.java b/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava16.java
index 1e42ce6d7..d86264a91 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava16.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc197/SanityTestsJava16.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc197;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava16OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava16OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava16 extends XMLBasedAjcTestCaseForJava16OrLater {
+public class SanityTestsJava16 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(16).MAJOR;
+ public SanityTestsJava16() {
+ super(16);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
index 4df003921..b8f28f56e 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/Ajc198TestsJava.java
@@ -9,28 +9,34 @@ package org.aspectj.systemtest.ajc198;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava17OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc198TestsJava extends XMLBasedAjcTestCaseForJava17OrLater {
+public class Ajc198TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+
+ private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(17);
+
+ public Ajc198TestsJava() {
+ super(17);
+ }
public void testSealedClassWithLegalSubclasses() {
runTest("sealed class with legal subclasses");
- checkVersion("Employee", Constants.ClassFileVersion.of(17).MAJOR, Constants.ClassFileVersion.of(17).MINOR);
- checkVersion("Manager", Constants.ClassFileVersion.of(17).MAJOR, Constants.ClassFileVersion.of(17).MINOR);
+ checkVersion("Employee", classFileVersion.MAJOR, classFileVersion.MINOR);
+ checkVersion("Manager", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testSealedClassWithIllegalSubclass() {
runTest("sealed class with illegal subclass");
- checkVersion("Person", Constants.ClassFileVersion.of(17).MAJOR, Constants.ClassFileVersion.of(17).MINOR);
+ checkVersion("Person", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public void testWeaveSealedClass() {
runTest("weave sealed class");
- checkVersion("PersonAspect", Constants.ClassFileVersion.of(17).MAJOR, Constants.ClassFileVersion.of(17).MINOR);
+ checkVersion("PersonAspect", classFileVersion.MAJOR, classFileVersion.MINOR);
}
public static Test suite() {
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/AllTestsAspectJ198.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/AllTestsAspectJ198.java
index 8e84af9fd..12c80cd10 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/AllTestsAspectJ198.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/AllTestsAspectJ198.java
@@ -9,6 +9,7 @@ package org.aspectj.systemtest.ajc198;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
/**
@@ -16,25 +17,28 @@ import org.aspectj.util.LangUtil;
*/
public class AllTestsAspectJ198 {
+ private static final int JAVA_VERSION = 17;
+
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.8 tests");
- suite.addTest(Bugs198Tests.suite());
+ suite.addTest(Bugs198Tests.suite());
if (LangUtil.isVMGreaterOrEqual(9)) {
suite.addTest(CompileWithReleaseTests.suite());
}
if (LangUtil.isVMGreaterOrEqual(11)) {
suite.addTest(Bugs198Java11Tests.suite());
}
- if (LangUtil.isVMGreaterOrEqual(17)) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava17.suite());
suite.addTest(Ajc198TestsJava.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(17) && !LangUtil.isVMGreaterOrEqual(18)) {
- suite.addTest(Java17PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java17PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Java11Tests.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Java11Tests.java
index 7e99b7d9f..bbf224e29 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Java11Tests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/Bugs198Java11Tests.java
@@ -8,15 +8,18 @@
package org.aspectj.systemtest.ajc198;
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava11OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Bugs198Java11Tests extends XMLBasedAjcTestCaseForJava11OrLater {
+public class Bugs198Java11Tests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Bugs198Java11Tests() {
+ super(11);
+ }
- public void testGitHub_68() {
+ public void testGitHub_68() {
runTest("correctly weave code using constant-dynamic");
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/CompileWithReleaseTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/CompileWithReleaseTests.java
index b0fb2745b..fb21de1fb 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/CompileWithReleaseTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/CompileWithReleaseTests.java
@@ -11,15 +11,18 @@ import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
import org.aspectj.apache.bcel.classfile.JavaClass;
import org.aspectj.apache.bcel.classfile.Method;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava9OrLater;
import java.util.Objects;
/**
* @author Alexander Kriegisch
*/
-public class CompileWithReleaseTests extends XMLBasedAjcTestCaseForJava9OrLater {
+public class CompileWithReleaseTests extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public CompileWithReleaseTests() {
+ super(9);
+ }
/**
* In order to avoid a complicated test involving two different JDKs (9+ for compilation, 8 for runtime), we inspect
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java
index abd9213f4..51f158f5e 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/Java17PreviewFeaturesTests.java
@@ -9,15 +9,19 @@ package org.aspectj.systemtest.ajc198;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava17Only;
/**
* @author Alexander Kriegisch
*/
-public class Java17PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava17Only {
+public class Java17PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(17);
+ public Java17PreviewFeaturesTests() {
+ super(17, 17);
+ }
+
public void testSwitchPatternMatchingCaseLabelDominatedByPrecedingError() {
runTest("switch pattern matching error");
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc198/SanityTestsJava17.java b/tests/src/test/java/org/aspectj/systemtest/ajc198/SanityTestsJava17.java
index 10363e965..0bfb33c7b 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc198/SanityTestsJava17.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc198/SanityTestsJava17.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc198;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava17OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava17OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava17 extends XMLBasedAjcTestCaseForJava17OrLater {
+public class SanityTestsJava17 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(17).MAJOR;
+ public SanityTestsJava17() {
+ super(17);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc199/Ajc199TestsJava.java b/tests/src/test/java/org/aspectj/systemtest/ajc199/Ajc199TestsJava.java
index 2b3ad813a..6f89edf8d 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc199/Ajc199TestsJava.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc199/Ajc199TestsJava.java
@@ -8,13 +8,16 @@
package org.aspectj.systemtest.ajc199;
import junit.framework.Test;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava18OrLater;
/**
* @author Alexander Kriegisch
*/
-public class Ajc199TestsJava extends XMLBasedAjcTestCaseForJava18OrLater {
+public class Ajc199TestsJava extends JavaVersionSpecificXMLBasedAjcTestCase {
+ public Ajc199TestsJava() {
+ super(18);
+ }
public void testDummyJava18() {
//runTest("dummy Java 18");
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc199/AllTestsAspectJ199.java b/tests/src/test/java/org/aspectj/systemtest/ajc199/AllTestsAspectJ199.java
index 724fcdf62..76289ed44 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc199/AllTestsAspectJ199.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc199/AllTestsAspectJ199.java
@@ -9,26 +9,29 @@ package org.aspectj.systemtest.ajc199;
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.aspectj.tools.ant.taskdefs.AjcTask;
import org.aspectj.util.LangUtil;
/**
* @author Alexander Kriegisch
*/
public class AllTestsAspectJ199 {
+ private static final int JAVA_VERSION = 18;
public static Test suite() {
TestSuite suite = new TestSuite("AspectJ 1.9.9 tests");
- suite.addTest(Bugs199Tests.suite());
- if (LangUtil.isVMGreaterOrEqual(18)) {
+ suite.addTest(Bugs199Tests.suite());
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION)) {
suite.addTest(SanityTestsJava18.suite());
suite.addTest(Ajc199TestsJava.suite());
}
+
// Do not run tests using a previous compiler's preview features anymore. They would all fail.
- /*
- if (LangUtil.isVMGreaterOrEqual(18) && !LangUtil.isVMGreaterOrEqual(19)) {
- suite.addTest(Java18PreviewFeaturesTests.suite());
+ if (AjcTask.JAVA_VERSION_MAX == JAVA_VERSION) {
+ if (LangUtil.isVMGreaterOrEqual(JAVA_VERSION) && LangUtil.isVMLessOrEqual(JAVA_VERSION)) {
+ suite.addTest(Java18PreviewFeaturesTests.suite());
+ }
}
- */
return suite;
}
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc199/Java18PreviewFeaturesTests.java b/tests/src/test/java/org/aspectj/systemtest/ajc199/Java18PreviewFeaturesTests.java
index 078a47671..d7f06b14a 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc199/Java18PreviewFeaturesTests.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc199/Java18PreviewFeaturesTests.java
@@ -9,15 +9,19 @@ package org.aspectj.systemtest.ajc199;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava18Only;
/**
* @author Alexander Kriegisch
*/
-public class Java18PreviewFeaturesTests extends XMLBasedAjcTestCaseForJava18Only {
+public class Java18PreviewFeaturesTests extends JavaVersionSpecificXMLBasedAjcTestCase {
private static final Constants.ClassFileVersion classFileVersion = Constants.ClassFileVersion.of(18);
+ public Java18PreviewFeaturesTests() {
+ super(18, 18);
+ }
+
public void testSwitchPatternMatchingCaseLabelDominatedByPrecedingError() {
runTest("switch pattern matching error");
}
diff --git a/tests/src/test/java/org/aspectj/systemtest/ajc199/SanityTestsJava18.java b/tests/src/test/java/org/aspectj/systemtest/ajc199/SanityTestsJava18.java
index e2d308ab5..85608cb07 100644
--- a/tests/src/test/java/org/aspectj/systemtest/ajc199/SanityTestsJava18.java
+++ b/tests/src/test/java/org/aspectj/systemtest/ajc199/SanityTestsJava18.java
@@ -9,8 +9,8 @@ package org.aspectj.systemtest.ajc199;
import junit.framework.Test;
import org.aspectj.apache.bcel.Constants;
+import org.aspectj.testing.JavaVersionSpecificXMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCase;
-import org.aspectj.testing.XMLBasedAjcTestCaseForJava18OrLater;
/*
* Some very trivial tests that help verify things are OK.
@@ -19,10 +19,14 @@ import org.aspectj.testing.XMLBasedAjcTestCaseForJava18OrLater;
*
* @author Alexander Kriegisch
*/
-public class SanityTestsJava18 extends XMLBasedAjcTestCaseForJava18OrLater {
+public class SanityTestsJava18 extends JavaVersionSpecificXMLBasedAjcTestCase {
public static final int bytecode_version_for_JDK_level = Constants.ClassFileVersion.of(18).MAJOR;
+ public SanityTestsJava18() {
+ super(18);
+ }
+
// Incredibly trivial test programs that check the compiler works at all (these are easy-ish to debug)
public void testSimpleJava_A() {
runTest("simple - a");
diff --git a/tests/src/test/resources/org/aspectj/systemtest/ajc193/sanity-tests-12.xml b/tests/src/test/resources/org/aspectj/systemtest/ajc193/sanity-tests-12.xml
new file mode 100644
index 000000000..b91cce256
--- /dev/null
+++ b/tests/src/test/resources/org/aspectj/systemtest/ajc193/sanity-tests-12.xml
@@ -0,0 +1,69 @@
+<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
+
+<suite>
+
+ <!-- empty class -->
+ <ajc-test dir="bugs160/simplejava" title="simple - a">
+ <compile files="SimpleA.java" options="-12"/>
+ </ajc-test>
+
+ <!-- class with one method -->
+ <ajc-test dir="bugs160/simplejava" title="simple - b">
+ <compile files="SimpleB.java" options="-12"/>
+ <run class="SimpleB"/>
+ </ajc-test>
+
+ <!-- empty aspect -->
+ <ajc-test dir="bugs160/simplejava" title="simple - c">
+ <compile files="SimpleC.java" options="-12"/>
+ </ajc-test>
+
+ <!-- simple before -->
+ <ajc-test dir="bugs160/simplejava" title="simple - d">
+ <compile files="SimpleD.java" options="-12"/>
+ </ajc-test>
+
+ <!-- simple itd field -->
+ <ajc-test dir="bugs160/simplejava" title="simple - e">
+ <compile files="SimpleE.java" options="-12"/>
+ </ajc-test>
+
+ <!-- aspect with main calling a static method -->
+ <ajc-test dir="bugs160/simplejava" title="simple - f">
+ <compile files="SimpleF.java" options="-12"/>
+ </ajc-test>
+
+ <!-- pertarget -->
+ <ajc-test dir="bugs160/simplejava" title="simple - g">
+ <compile files="SimpleG.java" options="-12"/>
+ </ajc-test>
+
+ <!-- generic ctor itds -->
+ <ajc-test dir="bugs160/simplejava" title="simple - h">
+ <compile files="SimpleH.java" options="-12"/>
+ </ajc-test>
+
+ <!-- overriding generic itd methods -->
+ <ajc-test dir="bugs160/simplejava" title="simple - i">
+ <compile files="SimpleI.java" options="-12"/>
+ </ajc-test>
+
+ <!-- check class file version is 57.0 -->
+ <ajc-test dir="bugs160/simplejava" title="simple - j">
+ <compile files="SimpleJ.java" options="-12"/>
+ </ajc-test>
+
+ <!-- check class file version is 57.0 -->
+ <ajc-test dir="bugs160/simplejava" title="simple - k">
+ <compile files="SimpleJ.java" options="-source 12"/>
+ </ajc-test>
+
+ <!-- check class file version is 49.0 -->
+ <ajc-test dir="bugs160/simplejava" title="simple - m">
+ <compile files="SimpleJ.java" options="-1.5"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs160/simplejava" title="simple - n">
+ <compile files="SimpleN.java" options="-12"/>
+ </ajc-test>
+</suite>
diff --git a/util/src/main/java/org/aspectj/util/LangUtil.java b/util/src/main/java/org/aspectj/util/LangUtil.java
index baf8d440e..f686cd1a3 100644
--- a/util/src/main/java/org/aspectj/util/LangUtil.java
+++ b/util/src/main/java/org/aspectj/util/LangUtil.java
@@ -115,7 +115,15 @@ public class LangUtil {
}
public static boolean isVMGreaterOrEqual(double javaVersion) {
- return javaVersion <= vmVersion;
+ return vmVersion >= javaVersion;
+ }
+
+ public static boolean isVMLessOrEqual(int javaVersion) {
+ return isVMLessOrEqual((double) javaVersion);
+ }
+
+ public static boolean isVMLessOrEqual(double javaVersion) {
+ return vmVersion <= javaVersion;
}
/**