Java 9 support

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Java 9 support

The Love of a Rainbow
Project Jigsaw in Java 9 forbids the same package being provided by
different modules. Derby falls into this pit by client and net
containing the same shared packages, meaning both cannot be used in the
same module:

error: module com.example reads package org.apache.derby.tools from both
derbynet and derbyclient

To solve this either client and net should be split from the shared
packages, or a new module should be made that contains both. Is either
on the radar? What would it take to make Derby usable as a module in
Java 9?

Reply | Threaded
Open this post in threaded view
|

Re: Java 9 support

Rick Hillegas-3
On 10/11/17 9:39 PM, The Love of a Rainbow wrote:

> Project Jigsaw in Java 9 forbids the same package being provided by
> different modules. Derby falls into this pit by client and net
> containing the same shared packages, meaning both cannot be used in the
> same module:
>
> error: module com.example reads package org.apache.derby.tools from both
> derbynet and derbyclient
>
> To solve this either client and net should be split from the shared
> packages, or a new module should be made that contains both. Is either
> on the radar? What would it take to make Derby usable as a module in
> Java 9?
>
Thanks for your interest in this topic. The Jigsaw-modularization of
Derby will be a major focus for the next (10.15) release family. You may
want to watch the following issue for progress on this effort:
https://issues.apache.org/jira/browse/DERBY-6945. Your advice would be
welcome there.

We have already done the work to make it possible to build Derby under
Java 9. I see the following significant chunks of work:

1) Deprecate support for building Derby with pre-Java9 JDKs.

2) Agree on a package structure for Derby, much as the Java team did for
the core JDK.

3) Convert the build script to generate those package artifacts.

4) Convert the release machinery to generate corresponding release
artifacts.

Thanks,

-Rick