[
https://issues.apache.org/jira/browse/ARROW-18020?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Dali Susanibar Arce updated ARROW-18020:
----------------------------------------------
Description:
*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*]
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.
was:
*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*]
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.
> [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*]
> 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)