Consolidate watcher declarations into a single SPI configuration file
This release consolidates the declaration of JUnit Foundation service providers into a single configuration file. Support for the previous file-per-interface approach is retained to provide backward compatibility.
One significant benefit to switching from ServiceLoaders to pre-initialized unmodifiable lists is that I no longer need to synchronize my iterators. The code is therefore smaller and less complicated.
Another benefit is that we no longer end up with multiple instances of each service provider that implements multiple interfaces. Previously, a separate instance would be created for each implemented interface.
NOTE: If you have a project with JUnit Foundation service provides that was created prior to this release, your current file-per-interface SPI configuration files will continue to be recognized, and you still get the benefit of proper handling of service providers that implement multiple interfaces. However, we recommend that you take this opportunity to consolidate all your SPI configurations into the common file:
META-INF/services/com.nordstrom.automation.junit.JUnitWatcher