<div dir="ltr"><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div><br clear="all"></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">The current behavior is inconsistent between compile and run time, and should be revisited.</div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">- DML • he/him<br></div></div></div>