org.linkedin.util-core/src/main/java/org/linkedin/util/io/resource/internal/URLResourceProvider.java
@Override
  public InternalResource doBuildResource(String path)
  {
    try
    {
      URI uri = _baseURL.toURI();

      URI newURI = new URI(uri.getScheme(),
                           uri.getUserInfo(),
                           uri.getHost(),
                           uri.getPort(),
                           getFullPath(path),
                           null,
                           null);

      return new URLResource(this, path, newURI.toURL(), _connectTimeout, _readTimeout);
    }
    catch(URISyntaxException e)
    {
      // should not happen
      throw new RuntimeException(e);
    }
    catch(MalformedURLException e)
    {
      // should not happen
      throw new RuntimeException(e);
    }
  }
@Override
  public InternalResource doBuildResource(String path)
  {
    try
    {
      URI uri = _baseURL.toURI();

      URI newURI = new URI(uri.getScheme(),
                           uri.getUserInfo(),
                           uri.getHost(),
                           uri.getPort(),
                           getFullPath(path),
                           null,
                           null);

      return new URLResource(this, path, newURI.toURL(), _connectTimeout, _readTimeout);
    }
    catch(URISyntaxException e)
    {
      // should not happen
      throw new RuntimeException(e);
    }
    catch(MalformedURLException e)
    {
      // should not happen
      throw new RuntimeException(e);
    }
  }
Builds a resource given a path. Only subclasses know how to do that.

@param path the path to the new resource (always starts with /)
@return the resource