In reference to a recent PR (https://github.com/apache/jena/pull/401), I am seeking input on a process to move forward towards JDK9+ (and JPMS) support in Jena. As consumers of jena apis, the applications that I am developing will require JPMS support going forward, so this is an important issue for my use case.
What I have noticed is that there will be breaking changes required to structure the code in a way that meets the JPMS "non-interference" specification.[1] A specific problem occurs when a module does not contain a single root package (which is a typical condition in several jena modules). This results in an "ambiguous module reference" error. To resolve this ambiguity may require considerable refactoring (e.g. moving org.apache.jena.riot to org.apache.jena.arq.riot). I surmise that it is not possible to make these changes and maintain compatibility for existing consumers What I would like to propose is a new branch that just contains modules compliant with the JPMS and that is tested for JDK9+. Artifacts produced from this branch could be distinguished from master artifacts with an appropriate appendix. Thank you for your consideration, Christopher Johnson Scientific Associate Universitätsbibliothek Leipzig [1] http://openjdk.java.net/projects/jigsaw/spec/reqs/#non-interference
