This is an automated email from the ASF dual-hosted git repository. chaokunyang pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-fury.git
commit cf1a7cda62e261905cce960d3f66e20c9b96e483 Author: chaokunyang <[email protected]> AuthorDate: Sun Mar 31 13:13:32 2024 +0800 feat(java): add openj9 ci (#1437) This PR add openj9 ci, since we have openj9 users, see #1433 . Class GC in linux distribution are not supported in this PR. --- .github/workflows/ci.yml | 25 +++++++++++++++++++++- .../org/apache/fury/util/unsafe/_JDKAccess.java | 4 ++-- .../java/org/apache/fury/util/unsafe/_Lookup.java | 2 +- .../src/test/java/org/apache/fury/TestUtils.java | 5 +++++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a200dc4f..bff362f2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,30 @@ jobs: run: ./ci/run_ci.sh install_pyfury - name: Run CI with Maven run: ./ci/run_ci.sh java${{ matrix.java-version }} - + openj9: + name: Openj9 Java CI + runs-on: ubuntu-latest + env: + MY_VAR: "PATH" + strategy: + matrix: + # String in openj9 1.8 share byte array by offset, fury doesn't allow it. + java-version: ["21"] + steps: + - uses: actions/checkout@v4 + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'adopt-openj9' + - name: Install bazel + run: ./ci/run_ci.sh install_bazel + - name: Install python + run: ./ci/run_ci.sh install_python + - name: Install pyfury + run: ./ci/run_ci.sh install_pyfury + - name: Run CI with Maven + run: ./ci/run_ci.sh java${{ matrix.java-version }} graalvm: name: GraalVM CI runs-on: ubuntu-latest diff --git a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java index e7d3b0de..dd429197 100644 --- a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java +++ b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_JDKAccess.java @@ -54,7 +54,7 @@ import sun.misc.Unsafe; public class _JDKAccess { // CHECKSTYLE.ON:TypeName public static final int JAVA_VERSION; - public static final boolean OPEN_J9; + public static final boolean IS_OPEN_J9; public static final Unsafe UNSAFE; public static final Class<?> _INNER_UNSAFE_CLASS; public static final Object _INNER_UNSAFE; @@ -65,7 +65,7 @@ public class _JDKAccess { property = property.substring(2); } String jmvName = System.getProperty("java.vm.name", ""); - OPEN_J9 = jmvName.contains("OpenJ9"); + IS_OPEN_J9 = jmvName.contains("OpenJ9"); JAVA_VERSION = Integer.parseInt(property); Unsafe unsafe; try { diff --git a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java index 16ddedb1..7ade95e0 100644 --- a/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java +++ b/java/fury-core/src/main/java/org/apache/fury/util/unsafe/_Lookup.java @@ -72,7 +72,7 @@ class _Lookup { } int fullAccessMask = 31; // for IBM Open J9 JDK return (Lookup) - constructor.invoke(objectClass, _JDKAccess.OPEN_J9 ? fullAccessMask : trusted); + constructor.invoke(objectClass, _JDKAccess.IS_OPEN_J9 ? fullAccessMask : trusted); } else { if (constructor == null) { constructor = diff --git a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java index b45d3707..97050684 100644 --- a/java/fury-core/src/test/java/org/apache/fury/TestUtils.java +++ b/java/fury-core/src/test/java/org/apache/fury/TestUtils.java @@ -28,6 +28,8 @@ import java.util.ArrayList; import java.util.function.Supplier; import org.apache.fury.util.FieldAccessor; import org.apache.fury.util.ReflectionUtils; +import org.apache.fury.util.unsafe._JDKAccess; +import org.testng.SkipException; /** Test utils. */ public class TestUtils { @@ -47,6 +49,9 @@ public class TestUtils { * @param predicate whether stop Trigger OOM. */ public static void triggerOOMForSoftGC(Supplier<Boolean> predicate) { + if (_JDKAccess.IS_OPEN_J9) { + throw new SkipException("OpenJ9 unsupported"); + } System.gc(); while (predicate.get()) { triggerOOM(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
