docs: public static URL getResourceAsURL(Class<?> requestingClass, String resource)
              throws ResourceMissingException {
          final Tuple<Class<?>, String> cacheKey =
                  new Tuple<Class<?>, String>(requestingClass, resource);
  
          // Look for a cached URL
          final Map<Tuple<Class<?>, String>, URL> resourceUrlCache = ResourceLoader.resourceUrlCache;
          URL resourceURL = resourceUrlCache != null ? resourceUrlCache.get(cacheKey) : null;
          if (resourceURL != null) {
              return resourceURL;
          }
  
          // Look for a failed lookup
          final Map<Tuple<Class<?>, String>, ResourceMissingException> resourceUrlNotFoundCache =
                  ResourceLoader.resourceUrlNotFoundCache;
          ResourceMissingException exception =
                  resourceUrlNotFoundCache != null ? resourceUrlNotFoundCache.get(cacheKey) : null;
          if (exception != null) {
              throw new ResourceMissingException(exception);
          }
  
          try {
              resourceURL = new URL(resource);
          } catch (MalformedURLException murle) {
              // URL is invalid, now try to load from classpath
              resourceURL = requestingClass.getResource(resource);
  
              if (resourceURL == null) {
                  String resourceRelativeToClasspath = null;
                  if (resource.startsWith("/")) resourceRelativeToClasspath = resource;
                  else
                      resourceRelativeToClasspath =
                              '/'
                                      + requestingClass.getPackage().getName().replace('.', '/')
                                      + '/'
                                      + resource;
                  exception =
                          new ResourceMissingException(
                                  resource,
                                  resourceRelativeToClasspath,
                                  "Resource not found in classpath: " + resourceRelativeToClasspath);
                  if (resourceUrlNotFoundCache != null) {
                      resourceUrlNotFoundCache.put(cacheKey, exception);
                  }
                  throw new ResourceMissingException(exception);
              }
          }
  
          if (resourceUrlCache != null) {
              resourceUrlCache.put(cacheKey, resourceURL);
          }
          return resourceURL;
      }