Ejemplo n.º 1
0
 private FetchEntry getFetchEntry(String urlString, URL url) {
   ImageEntry imageEntry = new ImageEntry(urlString);
   String hash =
       toHexString(shaHash.get().digest(urlString.getBytes(ClientConfiguration.UTF8_CHARSET)));
   String cacheFileName = getCacheFileName(hash, urlString);
   imageEntry.cacheFile = Paths.get(cacheFileName);
   // from url
   FetchEntry fetchEntry = new FetchEntry(imageEntry);
   fetchEntry.url = url;
   // from cache
   Path cachePath = Paths.get(cacheFileName);
   if (Files.exists(cachePath)) {
     FetchEntry cacheFetchEntry = new FetchEntry(imageEntry);
     try {
       cacheFetchEntry.url = cachePath.toUri().toURL();
     } catch (MalformedURLException e) {
       throw new AssertionError(e);
     }
     cacheFetchEntry.setAlternateEntry(fetchEntry);
     fetchEntry = cacheFetchEntry;
   } else {
     logger.debug("Cache miss: {}", urlString);
   }
   return fetchEntry;
 }