`requires static` versus service binding

Alex Buckley alex.buckley at oracle.com
Thu Jan 16 19:06:21 UTC 2025


On 1/13/2025 9:37 AM, Alan Bateman wrote:
> `requires static` was added to support annotations that aren't needed at 
> runtime, and also some configuration cases. I don't think support for 
> optional service interfaces has been ruled out but it's more complex to 
> specify that it might appear.

Alan and I have been discussing resolution of services that were present 
at compile time but are missing at run time. See the comments in 
https://bugs.openjdk.org/browse/JDK-8299504 (bearing in mind that the 
Java Bug System now shows newest-first by default).

As Alan says, this is a complex matter because of `transitive` 
dependencies and qualified exports. It reasons about relationships 
between entities declared in the program (modules) in a way that is more 
reminiscent of language design than library design. We think we've got 
the shape of things nailed down, but continue to polish it.

Alex


More information about the jigsaw-dev mailing list