On 11/09/2017 11:03, Christian Stein wrote:
Hi jigsaw team,

I discovered an issue with the ServiceLoader trying to load services on the
module-path, when the actual ServiceLoader.load() call resides in an
automatic module.

I compiled a small demo at [1] and it's console output is visible at [2].
If you want to re-run the demo, just call "jshell build.jsh" in the root
directory.

In summary, you have to elevate the automatic module to an explicit one,
via adding a module-info.class, to get the ServiceLoader load the service
on the module-path. This can be done with pro's [3] "modulefixer" plugin.

When resorting the class-path and provide a "META-INF/services" file and
also add the module to the class-path, I can get service loaded ... but
only within the unnamed module.
Which JAR file contains the service provider? You mentioned "restoring the class-path and provide a META-INF/services". Does this mean you removed the services configuration file when you had the JAR file on the module path as an automatic module?

-Alan

Reply via email to