ModuleDescriptor.Builder.provides() is too restrictive

forax at univ-mlv.fr forax at univ-mlv.fr
Sat Nov 19 18:08:38 UTC 2016


Ok !

Rémi

----- Mail original -----
> De: "Alan Bateman" <Alan.Bateman at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>, "jigsaw-dev" <jigsaw-dev at openjdk.java.net>
> Envoyé: Samedi 19 Novembre 2016 18:24:39
> Objet: Re: ModuleDescriptor.Builder.provides() is too restrictive

> On 19/11/2016 14:44, Remi Forax wrote:
> 
>> 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.
> The second form isn't allowed but javac is temporarily allowing it
> during the transition.
> 
> So the exception is correct, except that I would expect
> InvalidModuleDescriptorException with what you have as the cause.
> 
> -Alan
> 
>>
>> 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