Extend the support for optional dependences to allow for a service to be optional. The post-resolution consistency check specified by `Configuration.resolve` is relaxed to allow for the possibility that the service may be module that is not in the module graph.
ConfigurationTest is ported from TestNG to JUnit and updated to add new tests testUsesOptionalService$N and testProvidesOptionalService$N. The port to JUnit is mostly trivial/mechanical changes but it does create a bit of noise - I can move this port to another issue if it makes the harder to see the additions to the test. ------------- Commit messages: - Initial commit Changes: https://git.openjdk.org/jdk/pull/23147/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23147&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8299504 Stats: 520 lines in 3 files changed: 220 ins; 51 del; 249 mod Patch: https://git.openjdk.org/jdk/pull/23147.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23147/head:pull/23147 PR: https://git.openjdk.org/jdk/pull/23147