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
+}

Reply via email to