> On 13 Apr 2018, at 14:33, Alan Bateman <alan.bate...@oracle.com> wrote:
> 
> On 13/04/2018 13:16, Doug Simon wrote:
>> I just noticed that in the jdk.internal.vm.compiler module descriptor source 
>> there is a `uses` clause for CompilerConfigurationFactory[1] but no 
>> `provides` clause for the CoreCompilerConfigurationFactory provider[2] which 
>> is in the same module. However, `java -d jdk.internal.vm.compiler | grep 
>> Core` shows me the provider clause exists in the binary module descriptor. 
>> Is this done auto-magically by javac when building the module? If not, is it 
>> in the make files somewhere? I'm asking because there are new service 
>> providers being added in Graal.
>> 
> The build for that module is complex as it runs an annotation processor and 
> generates a module-info.java.extra (see 
> support/gensrc/jdk.internal.vm.compiler/ in the build output) that is merged 
> with the module-info.java before it is compiled. So no javac magic.

Ah yes, I'd forgotten that the @ServiceProvider annotation was run my the JDK 
make system. Thanks for the helpful reminder; it means we can simply use this 
annotation for the new service providers we're adding and everything should 
Just Work.

-Doug

Reply via email to