docs: @VisibleForTesting
    public static <T> Iterable<T> getCandidatesViaServiceLoader(Class<T> klass, ClassLoader cl) {
      Iterable<T> i = ServiceLoader.load(klass, cl);
      // Attempt to load using the context class loader and ServiceLoader.
      // This allows frameworks like http://aries.apache.org/modules/spi-fly.html to plug in.
      if (!i.iterator().hasNext()) {
        i = ServiceLoader.load(klass);
      }
      return i;
    }