[
https://issues.apache.org/jira/browse/ARROW-18020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Dali Susanibar Arce updated ARROW-18020:
----------------------------------------------
Summary: [Java][CI] Java Support Version Policy (was: [Java][CI] Apache
Arrow Java Support Version Policy)
> [Java][CI] Java Support Version Policy
> --------------------------------------
>
> Key: ARROW-18020
> URL: https://issues.apache.org/jira/browse/ARROW-18020
> Project: Apache Arrow
> Issue Type: Improvement
> Components: Documentation, Java
> Affects Versions: 11.0.0
> Reporter: David Dali Susanibar Arce
> Priority: Major
>
> **Current status**
> 1. Apache Arrow Java is compiled and tested by JDK 8, 11, 17, 18 but packaged
> with source/target JDK8
> **Changes implemented by this PR**
> 1. Apache Arrow Java project are continuing compiled and tested by JDK 8, 11,
> 17, 18 but packaged with source/target JDK8
> 2. If Apache Arrow Java project is building with JDK11+ validate the project
> are tested against the module-info.java definitions
> 3. There are not CI implementation to deliver Jar library with JDK8 & JDK11+
> (we need to define what will be our next step for JDK versions)
> 4. We probably are breaking APIs because we are changing package name to
> ensure unique package names on the project required by module-info.java
> 5. We are added a new project that contains Apache Arrow Netty custom
> implementation needed for
> 6. There are remaining modules pending to implement modules with
> module-info.java files. This PR contains modules-info.java for: Format /
> Memory / Vector
> **Next steps**
> 1. Implement cross-compilation with JDK 11+ and packaging with release=8
> (continue offering support for JDK8):
> That is not posible, if we compile with --release=8 we will have problems to
> access sun.misc.Unsafe that is not as exposed/public/documented API for N >=
> 9: -source N -target N --system <documented-APIs-from-N>.
> (https://openjdk.org/jeps/247)
>
> 2. We have these options for our next steps:
> - **Option 1**.- Maintain all as it is now, continue packaging with
> source/target JDK8
> - **Option 2**.- Change/Update/Modify use of sun.misc.* classes dependencies
> to be able to support cross-compilation (--release 8) to packaging with
> JDK11+ and continue offering support for JDK8 also
> ````
> jdeps --jdk-internals arrow-memory-unsafe-10.0.0-SNAPSHOT.jar
> arrow-memory-unsafe-10.0.0-SNAPSHOT.jar -> jdk.unsupported
> org.apache.arrow.memory.unsafe.UnsafeAllocationManager -> sun.misc.Unsafe
> JDK internal API (jdk.unsupported)
> Warning: JDK internal APIs are unsupported and private to JDK implementation
> that are
> subject to be removed or changed incompatibly and could break your
> application.
> Please modify your code to eliminate dependence on any JDK internal APIs.
> For the most recent update on JDK internal API replacements, please check:
> https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
> JDK Internal API Suggested Replacement
> ---------------- ---------------------
> sun.misc.Unsafe See http://openjdk.java.net/jeps/260
> ````
> - **Option 3**.- _Drop support for JDK8_ and starting offering support to
> packaging with JDK11+, this will be the right approach, but, this thread does
> not have an agreement about to drop JDK8 support ([JAVA] JDK Support Policy -
> https://lists.apache.org/thread/phpgpydtt3yrgnncdyv4qdq1gf02s0yj)
> If you decided to push some of this options please use that
> [ML](https://lists.apache.org/thread/phpgpydtt3yrgnncdyv4qdq1gf02s0yj) to
> move on next steps.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)