Class CachedResource

  • All Implemented Interfaces:
    WebResource

    public class CachedResource
    extends java.lang.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 Detail

      • CachedResource

        public CachedResource​(Cache cache,
                              StandardRoot root,
                              java.lang.String path,
                              long ttl,
                              int objectMaxSizeBytes,
                              boolean usesClassLoaderResources)
    • Method Detail

      • 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 java.lang.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 java.lang.String getName()
        Specified by:
        getName in interface WebResource
        Returns:
        File.getName().
      • getCanonicalPath

        public java.lang.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 java.lang.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 java.lang.String getETag()
        Description copied from interface: WebResource
        Return the strong ETag if available (currently not supported) else return the weak ETag calculated from the content length and last modified.
        Specified by:
        getETag in interface WebResource
        Returns:
        The ETag for this resource
      • setMimeType

        public void setMimeType​(java.lang.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 java.lang.String getMimeType()
        Specified by:
        getMimeType in interface WebResource
        Returns:
        the MIME type for this Resource.
      • getInputStream

        public java.io.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.
      • getURL

        public java.net.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 java.net.URL getCodeBase()
        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 java.security.cert.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:
        JarEntry.getCertificates()
      • getManifest

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