docs: protected boolean needsToBeRefreshed(DefaultFacelet facelet)
      {
          // if set to 0, constantly reload-- nocache
          if (_refreshPeriod == NO_CACHE_DELAY)
          {
              return true;
          }
  
          // if set to -1, never reload
          if (_refreshPeriod == INFINITE_DELAY)
          {
              return false;
          }
  
          long target = facelet.getCreateTime() + _refreshPeriod;
          if (System.currentTimeMillis() > target)
          {
              // Should check for file modification
  
              URLConnection conn = null;
              try
              {
                  conn = facelet.getSource().openConnection();
                  long lastModified = ResourceLoaderUtils.getResourceLastModified(conn);
  
                  return lastModified == 0 || lastModified > target;
              }
              catch (IOException e)
              {
                  throw new FaceletException("Error Checking Last Modified for " + facelet.getAlias(), e);
              }
              finally
              {
                  // finally close input stream when finished, if fails just continue.
                  if (conn != null)
                  {
                      try 
                      {
                          InputStream is = conn.getInputStream();
                          if (is != null)
                          {
                              is.close();
                          }
                      }
                      catch (IOException e)
                      {
                          // Ignore 
                      }
                  }
              }
          }
  
          return false;
      }