Package org.apache.catalina.webresources
Class CachedResource
- java.lang.Object
-
- org.apache.catalina.webresources.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 Summary
Constructors Constructor Description CachedResource(Cache cache, StandardRoot root, java.lang.String path, long ttl, int objectMaxSizeBytes, boolean usesClassLoaderResources)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanRead()Checks if this resource can be read.booleandelete()Deletes this resource.booleanexists()Checks if this resource exists.java.lang.StringgetCanonicalPath()Returns the canonical path of this resource.java.security.cert.Certificate[]getCertificates()Returns the certificates that were used to sign this resource to verify it.java.net.URLgetCodeBase()byte[]getContent()Returns the binary content of this resource.longgetContentLength()Returns the content length of this resource.longgetCreation()Returns the creation time of this resource.java.lang.StringgetETag()Returns the weak ETag calculated from the content length and last modified.java.io.InputStreamgetInputStream()Obtains an InputStream based on the contents of this resource.longgetLastModified()Returns the last modified time.java.lang.StringgetLastModifiedHttp()Returns the last modified time in HTTP format.java.util.jar.ManifestgetManifest()Returns the manifest associated with this resource.java.lang.StringgetMimeType()Returns the MIME type for this Resource.java.lang.StringgetName()Returns the name of this resource.protected longgetNextCheck()java.lang.StringgetStrongETag()Return the strong ETag if available else return the weak ETag calculated from the content length and last modified.java.net.URLgetURL()Returns a URL to access this resource.java.lang.StringgetWebappPath()Returns the webapp path of this resource.WebResourceRootgetWebResourceRoot()Returns a reference to the WebResourceRoot of which this WebResource is a part.booleanisDirectory()Checks if this resource is a directory.booleanisFile()Checks if this resource is a file.booleanisVirtual()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 additionalWebResourceSet.voidsetMimeType(java.lang.String mimeType)Set the MIME type for this Resource.protected booleanvalidateResource(boolean useClassLoaderResources)protected booleanvalidateResources(boolean useClassLoaderResources)
-
-
-
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()
Description copied from interface:WebResourceReturns the last modified time.- Specified by:
getLastModifiedin interfaceWebResource- Returns:
File.lastModified().
-
getLastModifiedHttp
public java.lang.String getLastModifiedHttp()
Description copied from interface:WebResourceReturns the last modified time in HTTP format.- Specified by:
getLastModifiedHttpin interfaceWebResource- 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()
Description copied from interface:WebResourceChecks if this resource exists.- Specified by:
existsin interfaceWebResource- Returns:
File.exists().
-
isVirtual
public boolean isVirtual()
Description copied from interface:WebResourceIndicates if this resource is required for applications to correctly scan the file structure but that does not exist in either the main or any additionalWebResourceSet. 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:
isVirtualin interfaceWebResource- Returns:
truefor a virtual resource
-
isDirectory
public boolean isDirectory()
Description copied from interface:WebResourceChecks if this resource is a directory.- Specified by:
isDirectoryin interfaceWebResource- Returns:
File.isDirectory().
-
isFile
public boolean isFile()
Description copied from interface:WebResourceChecks if this resource is a file.- Specified by:
isFilein interfaceWebResource- Returns:
File.isFile().
-
delete
public boolean delete()
Description copied from interface:WebResourceDeletes this resource.- Specified by:
deletein interfaceWebResource- Returns:
File.delete().
-
getName
public java.lang.String getName()
Description copied from interface:WebResourceReturns the name of this resource.- Specified by:
getNamein interfaceWebResource- Returns:
File.getName().
-
getContentLength
public long getContentLength()
Description copied from interface:WebResourceReturns the content length of this resource.- Specified by:
getContentLengthin interfaceWebResource- Returns:
File.length().
-
getCanonicalPath
public java.lang.String getCanonicalPath()
Description copied from interface:WebResourceReturns the canonical path of this resource.- Specified by:
getCanonicalPathin interfaceWebResource- Returns:
File.getCanonicalPath().
-
canRead
public boolean canRead()
Description copied from interface:WebResourceChecks if this resource can be read.- Specified by:
canReadin interfaceWebResource- Returns:
File.canRead().
-
getWebappPath
public java.lang.String getWebappPath()
Description copied from interface:WebResourceReturns the webapp path of this resource.- Specified by:
getWebappPathin interfaceWebResource- 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:WebResourceReturns the weak ETag calculated from the content length and last modified.- Specified by:
getETagin interfaceWebResource- Returns:
- The ETag for this resource
-
getStrongETag
public java.lang.String getStrongETag()
Description copied from interface:WebResourceReturn the strong ETag if available else return the weak ETag calculated from the content length and last modified.- Specified by:
getStrongETagin interfaceWebResource- Returns:
- The ETag for this resource
-
setMimeType
public void setMimeType(java.lang.String mimeType)
Description copied from interface:WebResourceSet the MIME type for this Resource.- Specified by:
setMimeTypein interfaceWebResource- Parameters:
mimeType- The mime type that will be associated with the resource
-
getMimeType
public java.lang.String getMimeType()
Description copied from interface:WebResourceReturns the MIME type for this Resource.- Specified by:
getMimeTypein interfaceWebResource- Returns:
- the MIME type for this Resource.
-
getInputStream
public java.io.InputStream getInputStream()
Description copied from interface:WebResourceObtains an InputStream based on the contents of this resource.- Specified by:
getInputStreamin interfaceWebResource- Returns:
- An InputStream based on the contents of this resource or
nullif the resource does not exist or does not represent a file
-
getContent
public byte[] getContent()
Description copied from interface:WebResourceReturns the binary content of this resource.- Specified by:
getContentin interfaceWebResource- Returns:
- the binary content of this resource or
nullif it is not available in a byte[] because, for example, it is too big.
-
getCreation
public long getCreation()
Description copied from interface:WebResourceReturns the creation time of this resource.- Specified by:
getCreationin interfaceWebResource- Returns:
- The time the file was created. If not available, the result of
WebResource.getLastModified()will be returned.
-
getURL
public java.net.URL getURL()
Description copied from interface:WebResourceReturns a URL to access this resource.- Specified by:
getURLin interfaceWebResource- Returns:
- a URL to access the resource or
nullif no such URL is available or if the resource does not exist.
-
getCodeBase
public java.net.URL getCodeBase()
- Specified by:
getCodeBasein interfaceWebResource- 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()
Description copied from interface:WebResourceReturns the certificates that were used to sign this resource to verify it.- Specified by:
getCertificatesin interfaceWebResource- 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()
Description copied from interface:WebResourceReturns the manifest associated with this resource.- Specified by:
getManifestin interfaceWebResource- Returns:
- the manifest associated with this resource or @null if none.
- See Also:
JarFile.getManifest()
-
getWebResourceRoot
public WebResourceRoot getWebResourceRoot()
Description copied from interface:WebResourceReturns a reference to the WebResourceRoot of which this WebResource is a part.- Specified by:
getWebResourceRootin interfaceWebResource- Returns:
- a reference to the WebResourceRoot of which this WebResource is a part.
-
-