Class CachedResource

java.lang.Object
org.apache.catalina.webresources.CachedResource
All Implemented Interfaces:
WebResource

public class CachedResource extends Object implements WebResource
This class is designed to wrap a 'raw' WebResource and providing caching for expensive operations. Inexpensive operations may be passed through to the underlying resource.
  • Constructor Details

    • CachedResource

      public CachedResource(Cache cache, StandardRoot root, String path, long ttl, int objectMaxSizeBytes, boolean usesClassLoaderResources)
  • Method Details

    • validateResource

      protected boolean validateResource(boolean useClassLoaderResources)
    • validateResources

      protected boolean validateResources(boolean useClassLoaderResources)
    • getNextCheck

      protected long getNextCheck()
    • getLastModified

      public long getLastModified()
      Specified by:
      getLastModified in interface WebResource
      Returns:
      File.lastModified().
    • getLastModifiedHttp

      public String getLastModifiedHttp()
      Specified by:
      getLastModifiedHttp in interface WebResource
      Returns:
      the last modified time of this resource in the correct format for the HTTP Last-Modified header as specified by RFC 2616.
    • exists

      public boolean exists()
      Specified by:
      exists in interface WebResource
      Returns:
      File.exists().
    • isVirtual

      public boolean isVirtual()
      Description copied from interface: WebResource
      Indicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additional WebResourceSet. For example, if an external directory is mapped to /WEB-INF/lib in an otherwise empty web application, /WEB-INF will be represented as a virtual resource.
      Specified by:
      isVirtual in interface WebResource
      Returns:
      true for a virtual resource
    • isDirectory

      public boolean isDirectory()
      Specified by:
      isDirectory in interface WebResource
      Returns:
      File.isDirectory().
    • isFile

      public boolean isFile()
      Specified by:
      isFile in interface WebResource
      Returns:
      File.isFile().
    • delete

      public boolean delete()
      Specified by:
      delete in interface WebResource
      Returns:
      File.delete().
    • getName

      public String getName()
      Specified by:
      getName in interface WebResource
      Returns:
      File.getName().
    • getContentLength

      public long getContentLength()
      Specified by:
      getContentLength in interface WebResource
      Returns:
      File.length().
    • getCanonicalPath

      public String getCanonicalPath()
      Specified by:
      getCanonicalPath in interface WebResource
      Returns:
      File.getCanonicalPath().
    • canRead

      public boolean canRead()
      Specified by:
      canRead in interface WebResource
      Returns:
      File.canRead().
    • getWebappPath

      public String getWebappPath()
      Specified by:
      getWebappPath in interface WebResource
      Returns:
      The path of this resource relative to the web application root. If the resource is a directory, the return value will end in '/'.
    • getETag

      public String getETag()
      Description copied from interface: WebResource
      Return the weak ETag calculated from the content length and last modified.
      Specified by:
      getETag in interface WebResource
      Returns:
      The ETag for this resource
    • getStrongETag

      public String getStrongETag()
      Description copied from interface: WebResource
      Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.
      Specified by:
      getStrongETag in interface WebResource
      Returns:
      The ETag for this resource
    • setMimeType

      public void setMimeType(String mimeType)
      Description copied from interface: WebResource
      Set the MIME type for this Resource.
      Specified by:
      setMimeType in interface WebResource
      Parameters:
      mimeType - The mime type that will be associated with the resource
    • getMimeType

      public String getMimeType()
      Specified by:
      getMimeType in interface WebResource
      Returns:
      the MIME type for this Resource.
    • getInputStream

      public InputStream getInputStream()
      Description copied from interface: WebResource
      Obtain an InputStream based on the contents of this resource.
      Specified by:
      getInputStream in interface WebResource
      Returns:
      An InputStream based on the contents of this resource or null if the resource does not exist or does not represent a file
    • getContent

      public byte[] getContent()
      Specified by:
      getContent in interface WebResource
      Returns:
      the binary content of this resource or null if it is not available in a byte[] because, for example, it is too big.
    • getCreation

      public long getCreation()
      Specified by:
      getCreation in interface WebResource
      Returns:
      The time the file was created. If not available, the result of WebResource.getLastModified() will be returned.
    • getURL

      public URL getURL()
      Specified by:
      getURL in interface WebResource
      Returns:
      a URL to access the resource or null if no such URL is available or if the resource does not exist.
    • getCodeBase

      public URL getCodeBase()
      Description copied from interface: WebResource
      Returns the code base for this resource.

      The expectation is that this will be deprecated and then removed once the SecurityManager has been fully removed from the JRE and it has been confirmed that the JRE no longer depends on code base.

      Specified by:
      getCodeBase in interface WebResource
      Returns:
      the code base for this resource that will be used when looking up the assigned permissions for the code base in the security policy file when running under a security manager.
    • getCertificates

      public Certificate[] getCertificates()
      Specified by:
      getCertificates in interface WebResource
      Returns:
      the certificates that were used to sign this resource to verify it or @null if none.
      See Also:
    • getManifest

      public Manifest getManifest()
      Specified by:
      getManifest in interface WebResource
      Returns:
      the manifest associated with this resource or @null if none.
      See Also:
    • getWebResourceRoot

      public WebResourceRoot getWebResourceRoot()
      Specified by:
      getWebResourceRoot in interface WebResource
      Returns:
      a reference to the WebResourceRoot of which this WebResource is a part.