@Nullable static String ensureNotEmptyOrNull(Properties properties, String fileName, String name) {
    String value = properties.getProperty(name);
    if (value == null) {
      throw new IllegalStateException("no " + name + " property in " + fileName);
    }
    value = value.trim();
    if (value.isEmpty()) {
      throw new IllegalStateException("empty " + name + " property in " + fileName);
    }
    return value;
  }
Loads username/password from credentials file.

<p><em>NOTE:</em> This implementation loops instead of using {@link java.nio.file.WatchService}.
This means that spans will drop and api failures will occur for any time remaining in the refresh
interval. A future version can tighten this by also using poll events.
zipkin-server/src/main/java/zipkin2/server/internal/elasticsearch/DynamicCredentialsFileLoader.java