code: @CanIgnoreReturnValue // being used to check if a resource exists
    // TODO(cgdecker): maybe add a better way to check if a resource exists
    // e.g. Optional<URL> tryGetResource or boolean resourceExists
    public static URL getResource(String resourceName) {
      ClassLoader loader =
          MoreObjects.firstNonNull(
              Thread.currentThread().getContextClassLoader(), Resources.class.getClassLoader());
      URL url = loader.getResource(resourceName);
      checkArgument(url != null, "resource %s not found.", resourceName);
      return url;
    }
docs: Returns a {@code URL} pointing to {@code resourceName} if the resource is found using the
  {@linkplain Thread#getContextClassLoader() context class loader}. In simple environments, the
  context class loader will find resources from the class path. In environments where different
  threads can have different class loaders, for example app servers, the context class loader
  will typically have been set to an appropriate loader for the current thread.
  
  <p>In the unusual case where the context class loader is null, the class loader that loaded
  this class ({@code Resources}) will be used instead.
  
  @throws IllegalArgumentException if the resource is not found