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 Li (Jira)" <ji...@apache.org> on 2022/10/13 11:31:00 UTC

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

    [ https://issues.apache.org/jira/browse/ARROW-18020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17616981#comment-17616981 ] 

David Li commented on ARROW-18020:
----------------------------------

Unsafe is a hard requirement and I'm not aware of any way to replace it.

I thought we've discussed this on the ML and we cannot drop Java 8.

> [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* [https://github.com/apache/arrow/pull/13072|https://github.com/apache/arrow/pull/13072*]
> 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
> {code:java}
> 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 {code}
>  - {*}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)