Hongze Zhang created ARROW-12905:
Summary: [Java] Adapt to Java 9/9+ automatic module system
Key: ARROW-12905
URL: https://issues.apache.org/jira/browse/ARROW-12905
Project: Apache Arrow
Issue Type: Improvement
Components: Java
Reporter: Hongze Zhang
In Java 9/9+, within following module-info.java definition the build will fail
by error:
{code}
module my.app {
exports my.app;
requires arrow.memory.core;
requires arrow.memory.unsafe;
}
{code}
The error:
{quote}
java: the unnamed module reads package org.apache.arrow.memory from both
arrow.memory.core and arrow.memory.unsafe
{quote}
It seems that JPMS requires a package to be read from at most one individual
module. Ref:
http://openjdk.java.net/projects/jigsaw/spec/sotms/#the-module-path. If so what
we may have to do is to conduct a code clean up for our maven modules to make
sure we don't populate codes in the same package into different libraries.
Also, as a more standardized practice, it's might be an option to put entries
with name *Automatic-Module-Name* into manifest files to tell automatic module
system to generate predefined module names rather than parsing from jar file
name. Ref:
https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleFinder.html#automatic-modules
Note that it's not a goal for this topic to migrate to Java 9/9+.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)