You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Hongze Zhang (Jira)" <ji...@apache.org> on 2021/05/29 07:39:00 UTC

[jira] [Created] (ARROW-12905) [Java] Adapt to Java 9/9+ automatic module system

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)