> 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