docs: public static Provider withUrl(Provider provider, String url) {
      checkNotNull(provider, "provider");
      checkNotNull(url, "url");
      try {
        Constructor<?> ctor = provider.getClass().getDeclaredConstructor(String.class);
        // allow private or package protected ctors
        ctor.setAccessible(true);
        return Provider.class.cast(ctor.newInstance(url));
      } catch (NoSuchMethodException e) {
        throw new IllegalArgumentException(
            provider.getClass() + " does not have a String parameter constructor", e);
      } catch (Exception e) {
        throw new IllegalArgumentException(
            "exception attempting to instantiate " + provider.getClass()
            + " for provider " + provider, e);
      }
    }