code: public String getCacheName(CmsResource resource, String parameters) {
  
          // calculate the base cache path for the resource
          String rfsName = m_rfsRepository + resource.getRootPath();
          String extension = CmsFileUtil.getExtension(rfsName);
  
          // create a StringBuffer for the result
          StringBuffer buf = new StringBuffer(rfsName.length() + 24);
          buf.append(rfsName.substring(0, rfsName.length() - extension.length()));
  
          // calculate a hash code that contains the resource DateLastModified, DateCreated and Length
          StringBuffer ext = new StringBuffer(48);
          ext.append(resource.getDateLastModified());
          ext.append(';');
          ext.append(resource.getDateCreated());
          if (resource.getLength() > 0) {
              ext.append(';');
              ext.append(resource.getLength());
          }
          // append hash code to the result buffer
          buf.append('_');
          buf.append(ext.toString().hashCode());
  
          // check if parameters are provided, if so add them as well
          if (parameters != null) {
              buf.append('_');
              try {
                  buf.append(DigestUtils.md5Hex(parameters.getBytes("UTF-8")));
              } catch (UnsupportedEncodingException e) {
                  // can't happen
                  LOG.error(e.getLocalizedMessage(), e);
              }
          }
  
          // finally append the extension from the original file name
          buf.append(extension);
          return buf.toString();
      }
docs: Returns the RFS name to use for caching the given VFS resource with parameters in the disk cache.<p>
  
  @param resource the VFS resource to generate the cache name for
  @param parameters the parameters of the request to the VFS resource
  
  @return the RFS name to use for caching the given VFS resource with parameters