diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java index afdcab70bb460..c3b0f0766bb6c 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/AbstractClientCompatibilityTest.java @@ -78,6 +78,9 @@ public abstract class AbstractClientCompatibilityTest extends IgniteCompatibilit /** Version 2.15.0. */ protected static final IgniteProductVersion VER_2_15_0 = IgniteProductVersion.fromString("2.15.0"); + /** Version 2.16.0. */ + protected static final IgniteProductVersion VER_2_16_0 = IgniteProductVersion.fromString("2.16.0"); + /** Version 2.18.0. */ protected static final IgniteProductVersion VER_2_18_0 = IgniteProductVersion.fromString("2.18.0"); diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityStoragePathTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityStoragePathTest.java index 911e2a151f4c8..037fbe8527398 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityStoragePathTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityStoragePathTest.java @@ -81,21 +81,28 @@ public class JavaThinCompatibilityStoragePathTest extends AbstractClientCompatib /** {@inheritDoc} */ @Override public void testOldClientToCurrentServer() throws Exception { - assumeTrue("Cluster state API exists only from 2.9.0 release", ver.compareTo(VER_2_9_0) >= 0); + assumeVersionSupported(); super.testOldClientToCurrentServer(); } /** {@inheritDoc} */ @Override public void testCurrentClientToOldServer() throws Exception { + assumeVersionSupported(); + + super.testCurrentClientToOldServer(); + } + + /** Skips the test if the old version doesn't support the cluster state API or the current JDK. */ + private void assumeVersionSupported() { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer >= 17) + if (majorJavaVer >= 21) + assumeTrue("JDK 21 support is available starting with release 2.16.0", ver.compareTo(VER_2_16_0) >= 0); + else if (majorJavaVer >= 17) assumeTrue("JDK 17 support is available starting with release 2.13.0", ver.compareTo(VER_2_13_0) >= 0); else assumeTrue("Cluster state API exists only from 2.9.0 release", ver.compareTo(VER_2_9_0) >= 0); - - super.testCurrentClientToOldServer(); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityTest.java index 271a45a8660a7..732aa27457b59 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JavaThinCompatibilityTest.java @@ -107,7 +107,11 @@ public class JavaThinCompatibilityTest extends AbstractClientCompatibilityTest { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer > 11) { + if (majorJavaVer >= 21) { + Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), + VER_2_16_0.compareTo(IgniteProductVersion.fromString(verFormatted)) <= 0); + } + else if (majorJavaVer > 11) { Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), VER_2_12_0.compareTo(IgniteProductVersion.fromString(verFormatted)) < 0); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JdbcThinCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JdbcThinCompatibilityTest.java index bb0d070cb61ea..b337c79f53acc 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JdbcThinCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/clients/JdbcThinCompatibilityTest.java @@ -55,7 +55,11 @@ private static void executeSql(IgniteEx igniteEx, String sql) { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer > 11) { + if (majorJavaVer >= 21) { + Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), + VER_2_16_0.compareTo(IgniteProductVersion.fromString(verFormatted)) <= 0); + } + else if (majorJavaVer > 11) { Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), VER_2_12_0.compareTo(IgniteProductVersion.fromString(verFormatted)) < 0); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/CompoundIndexCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/CompoundIndexCompatibilityTest.java index 9bfd2e75740f9..6d6be72c83fc9 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/CompoundIndexCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/CompoundIndexCompatibilityTest.java @@ -52,6 +52,7 @@ public void testSecondaryIndexesMigration_2_7_6() throws Exception { /** */ @Test + @SkipTestIfIsJdkNewer(17) public void testSecondaryIndexesMigration_2_13_0() throws Exception { // 2.13.0 - version with _KEY unwrapping, but before index processing moved to the core module. doTestStartupWithOldVersion("2.13.0", () -> { diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/IndexTypesCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/IndexTypesCompatibilityTest.java index c1cf8dcf74037..c9ca184edb9ec 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/IndexTypesCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/IndexTypesCompatibilityTest.java @@ -47,6 +47,7 @@ import org.junit.runners.Parameterized; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_12_0; +import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_16_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_6_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.since; import static org.apache.ignite.testframework.GridTestUtils.cartesianProduct; @@ -112,7 +113,11 @@ public static Collection runConfig() { public void testQueryOldIndex() throws Exception { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer > 11) { + if (majorJavaVer >= 21) { + Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), + VER_2_16_0.compareTo(IgniteReleasedVersion.fromString(igniteVer)) <= 0); + } + else if (majorJavaVer > 11) { Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), VER_2_12_0.compareTo(IgniteReleasedVersion.fromString(igniteVer)) < 0); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/InlineJavaObjectCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/InlineJavaObjectCompatibilityTest.java index 917a8bd7bc38f..3cbffb051b6d0 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/InlineJavaObjectCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/InlineJavaObjectCompatibilityTest.java @@ -42,6 +42,7 @@ import org.junit.runners.Parameterized; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_12_0; +import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_16_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_6_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.since; import static org.apache.ignite.testframework.GridTestUtils.cartesianProduct; @@ -83,7 +84,11 @@ public static Collection runConfig() { public void testQueryOldInlinedIndex() throws Exception { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer > 11) { + if (majorJavaVer >= 21) { + Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), + VER_2_16_0.compareTo(IgniteReleasedVersion.fromString(igniteVer)) <= 0); + } + else if (majorJavaVer > 11) { Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), VER_2_12_0.compareTo(IgniteReleasedVersion.fromString(igniteVer)) < 0); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/PersistenceBasicCompatibilityTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/PersistenceBasicCompatibilityTest.java index 2a34e543f591b..1965c20eadde2 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/PersistenceBasicCompatibilityTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/persistence/PersistenceBasicCompatibilityTest.java @@ -46,6 +46,7 @@ import org.junit.runners.Parameterized; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_12_0; +import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_16_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_1_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.VER_2_3_0; import static org.apache.ignite.compatibility.IgniteReleasedVersion.since; @@ -104,7 +105,11 @@ public static Collection parameters() { public void testNodeStartByOldVersionPersistenceData() throws Exception { int majorJavaVer = U.majorJavaVersion(U.jdkVersion()); - if (majorJavaVer > 11) { + if (majorJavaVer >= 21) { + Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), + VER_2_16_0.compareTo(IgniteReleasedVersion.fromString(version)) <= 0); + } + else if (majorJavaVer > 11) { Assume.assumeTrue("Skipped on jdk " + U.jdkVersion(), VER_2_12_0.compareTo(IgniteReleasedVersion.fromString(version)) < 0); } diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/spi/discovery/TcpDiscoveryDifferentClusterVersionsTest.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/spi/discovery/TcpDiscoveryDifferentClusterVersionsTest.java index 415cc28a6f05c..0be64515e94b0 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/spi/discovery/TcpDiscoveryDifferentClusterVersionsTest.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/spi/discovery/TcpDiscoveryDifferentClusterVersionsTest.java @@ -85,7 +85,7 @@ public void testOldNodeRejected() throws Exception { GridTestUtils.assertThrows( log, - () -> startGrid("old-node", OLD_VERSION.toString(), new ConfigurationClosure()), + () -> startGrid("old-node", OLD_VERSION.toString(), new ConfigurationClosure(client)), AssertionError.class, null ); @@ -94,7 +94,15 @@ public void testOldNodeRejected() throws Exception { } /** Setup node closure. */ - private class ConfigurationClosure implements IgniteInClosure { + private static class ConfigurationClosure implements IgniteInClosure { + /** */ + private final boolean client; + + /** @param client Client mode flag. */ + ConfigurationClosure(boolean client) { + this.client = client; + } + /** {@inheritDoc} */ @Override public void apply(IgniteConfiguration cfg) { cfg.setClientMode(client);