This is an automated email from the ASF dual-hosted git repository. ibessonov pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push: new df4fdc5986 IGNITE-20037 Fix Gradle issues when building Ignite 3 on Java 17 (#2351) df4fdc5986 is described below commit df4fdc5986d524fef749e2fee4904e8e4989ca19 Author: Alexander Polovtcev <alex.polovt...@gmail.com> AuthorDate: Tue Jul 25 11:24:27 2023 +0300 IGNITE-20037 Fix Gradle issues when building Ignite 3 on Java 17 (#2351) --- build.gradle | 1 + buildscripts/java-integration-test.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../internal/testframework/IgniteTestUtils.java | 19 ++++++++++++++----- packaging/odbc/build.gradle | 7 ++++++- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index 30c5f9166f..62a8d42bcf 100644 --- a/build.gradle +++ b/build.gradle @@ -64,6 +64,7 @@ allprojects { "--add-opens=java.base/java.math=ALL-UNNAMED", "--add-opens=java.base/java.util=ALL-UNNAMED", "--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED", + "--add-opens=java.base/sun.security.x509=ALL-UNNAMED", "-Dio.netty.tryReflectionSetAccessible=true", "-Djava.util.logging.config.file=${project.rootDir}/config/java.util.logging.properties"] diff --git a/buildscripts/java-integration-test.gradle b/buildscripts/java-integration-test.gradle index 568036fb69..8be4bd6a22 100644 --- a/buildscripts/java-integration-test.gradle +++ b/buildscripts/java-integration-test.gradle @@ -26,7 +26,7 @@ testing { useJUnitJupiter() dependencies { - implementation project + implementation project() implementation libs.junit5.api implementation libs.junit5.impl implementation libs.junit5.params diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661ee7..98debb84d5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java index 4594818fd7..a8c22d1eeb 100644 --- a/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java +++ b/modules/core/src/testFixtures/java/org/apache/ignite/internal/testframework/IgniteTestUtils.java @@ -20,6 +20,8 @@ package org.apache.ignite.internal.testframework; import static java.lang.Thread.sleep; import static org.junit.jupiter.api.Assertions.fail; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -64,6 +66,17 @@ public final class IgniteTestUtils { private static final int TIMEOUT_SEC = 30; + private static final VarHandle MODIFIERS; + + static { + try { + MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(Field.class, MethodHandles.lookup()); + MODIFIERS = lookup.findVarHandle(Field.class, "modifiers", int.class); + } catch (IllegalAccessException | NoSuchFieldException ex) { + throw new ExceptionInInitializerError(ex); + } + } + /** * Set object field value via reflection. * @@ -137,11 +150,7 @@ public final class IgniteTestUtils { } if (isFinal) { - Field modifiersField = Field.class.getDeclaredField("modifiers"); - - modifiersField.setAccessible(true); - - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); + MODIFIERS.set(field, field.getModifiers() & ~Modifier.FINAL); } field.set(obj, val); diff --git a/packaging/odbc/build.gradle b/packaging/odbc/build.gradle index 25ce1e40fc..0ad0e5826f 100644 --- a/packaging/odbc/build.gradle +++ b/packaging/odbc/build.gradle @@ -25,6 +25,11 @@ plugins { alias(libs.plugins.checksum) } +java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 +} + configurations { odbc } @@ -100,4 +105,4 @@ ospackage { into("${tokens.TMP_DIR}/${project.version}") { from "$buildDir/scripts/ignite3-odbc.ini" } -} \ No newline at end of file +}