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)