`requires static` versus service binding
Alan Bateman
alan.bateman at oracle.com
Wed Jan 8 18:25:29 UTC 2025
On 08/01/2025 17:57, David Lloyd wrote:
> It is not uncommon for a library to contain a provider for a service
> where the service resides in an optional dependency. It is also
> sometimes desirable to use a service from an optional dependency.
>
> In JPMS, we can use `requires static` to indicate that the library
> will function without the dependency being present. We can declare
> that we use or provide a service from the optional dependency.
> Compilation will complete successfully in this case, because the
> descriptor is valid.
>
> However, at run time, the module will fail to resolve if any provider
> or uses comes from a module that is not present when the layer is
> resolved. This is not desired behavior, because the user has already
> opted in to and indicated that the dependency in question is optional,
> and should not cause a run time problem if not present.
>
You can find previous discussion on this topic in JDK-8299504 [1] and
this mailing list [2].
-Alan
[1] https://bugs.openjdk.org/browse/JDK-8299504
[2]
https://mail.openjdk.org/pipermail/jigsaw-dev/2023-April/thread.html#14846
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/jigsaw-dev/attachments/20250108/04e1df26/attachment.htm>
More information about the jigsaw-dev
mailing list