Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support the Java platform module system #2800

Open
durganmcbroom opened this issue Aug 20, 2022 · 3 comments
Open

Support the Java platform module system #2800

durganmcbroom opened this issue Aug 20, 2022 · 3 comments

Comments

@durganmcbroom
Copy link

As the title suggests, Arrow does not support the Java module system. One workaround is to manually patch in arrow as a module, eg:

// build.gradle.kts
tasks.compileJava {
    doFirst {
        val arrowVersion = "1.12.2"

        options.compilerArgs.addAll(
            listOf(
                "--module-path", classpath.asPath,
                "--add-modules", "arrow.core.jvm",
                "--patch-module", "arrow.core.jvm=arrow-core-jvm-$arrowVersion.jar"
            )
        )

        classpath = files()
    }
}

Possible solutions could be:

  • Declare an automatic module name in the Arrow manifest
  • Turn the JVM build into a multi-release jar with a module-info

Thanks!

@serras
Copy link
Member

serras commented Nov 17, 2022

For the record, this PR adds support for JPMS for kotlinx.serialization. @durganmcbroom do you think this is a plausible solution for Arrow?

@serras
Copy link
Member

serras commented Nov 17, 2022

This is the same issue as #2553

@durganmcbroom
Copy link
Author

The solution discussed in the PR you mentioned looks great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants