ModuleDescriptor.Builder.provides() is too restrictive

Remi Forax forax at univ-mlv.fr
Sat Nov 19 14:44:12 UTC 2016


Hi all,
Currently the spec supports two ways to declare several providers for one service:
  provides com.github.forax.pro.main.runner.Runner
    with com.github.forax.pro.main.JSONRunner,
         com.github.forax.pro.main.JShellRunner;
or
  provides com.github.forax.pro.main.runner.Runner with com.github.forax.pro.main.JSONRunner;
  provides com.github.forax.pro.main.runner.Runner with com.github.forax.pro.main.JShellRunner;

but the equivalent code declared using the ModuleDescriptor.Builder.provides() fails.

cheers,
Rémi

Exception in thread "main" java.lang.IllegalStateException: Providers of service com.github.forax.pro.main.runner.Runner already declared by com.github.forax.pro.main
	at java.base/java.lang.module.ModuleDescriptor$Builder.provides(ModuleDescriptor.java:1807)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleHelper$1.visitProvides(ModuleHelper.java:84)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleParser.parseProvides(ModuleParser.java:262)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleParser.parseModule(ModuleParser.java:202)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleParser.parse(ModuleParser.java:153)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleHelper$1.parse(ModuleHelper.java:89)
	at com.github.forax.pro.helper/com.github.forax.pro.helper.ModuleHelper.sourceModuleDescriptor(ModuleHelper.java:95)
        ...




More information about the jigsaw-dev mailing list