Closed sjoerdtalsma closed 6 years ago
@tedsuo I cannot seem to request reviewers myself and I see that you have automated this for new PR's. Could you request a review for me on this PR?
cc @objectiser @jpkrohling
I need some time to review this, as I'm really not up to date with the current state of JPMS.
Hey, the automatic module names look good IMO.
That said, adding the headers kind of suggests to users that using the JARs as auto modules is endorsed by the library authors, so I'd recommend to do at least some basic testing whether the OpenTracing JARs can actually be used as automatic modules. This should make sure you don't full upon the most basic potential problems such as split packages between multiple modules etc.
Thanks a lot, @gunnarmorling! Your expertise is much appreciated!
@sjoerdtalsma, how soon do you need this merged? Depending on your requirements, we could try to get @kevinearls to test this and make sure our basic examples will still work with this PR on Java 9.
@jpkrohling Seeing the PR is already over two months old, my priority would be for correctness over speed.
With regards to package names: currently we seem to be ok:
io.opentracing.api
:
io.opentracing
io.opentracing.log
io.opentracing.propagation
io.opentracing.tag
io.opentracing.noop
:
io.opentracing.noop
io.opentracing.util
:
io.opentracing.util
io.opentracing.mock
:
io.opentracing.mock
I did the following today:
All tests were successful. Please let me know if there's anything else needed here.
Thanks @kevinearls. I think it's time to merge it and see how it reacts in the real world.
In preparation for Java 9 jigsaw modularization.
Currently, trying to release a java 9 modularized library that requires the opentracing API will use an "Automatic Module" in Jigsaw. However, depending on this module will generate warnings, as its name is not reserved yet (and based off the jar name e.g. without the
io.opentracing
prefix).This blog post describes why it is a good idea to start providing
Automatic-Module-Name
entries inMANIFEST.MF
files for libraries, even if they're not yet fully modularized.This effectively only 'claims' the name for the automatic modules: