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)

Reply via email to