You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "David Dali Susanibar Arce (Jira)" <ji...@apache.org> on 2022/10/13 04:26:00 UTC

[jira] [Updated] (ARROW-18020) [Java][CI] Java Support Version Policy

     [ 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)