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 boolean
canRead()
boolean
delete()
boolean
exists()
java.lang.String
getCanonicalPath()
java.security.cert.Certificate[]
getCertificates()
java.net.URL
getCodeBase()
byte[]
getContent()
long
getContentLength()
long
getCreation()
java.lang.String
getETag()
Return the strong ETag if available (currently not supported) else return the weak ETag calculated from the content length and last modified.java.io.InputStream
getInputStream()
Obtain an InputStream based on the contents of this resource.long
getLastModified()
java.lang.String
getLastModifiedHttp()
java.util.jar.Manifest
getManifest()
java.lang.String
getMimeType()
java.lang.String
getName()
protected long
getNextCheck()
java.net.URL
getURL()
java.lang.String
getWebappPath()
WebResourceRoot
getWebResourceRoot()
boolean
isDirectory()
boolean
isFile()
boolean
isVirtual()
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
.void
setMimeType(java.lang.String mimeType)
Set the MIME type for this Resource.protected boolean
validateResource(boolean useClassLoaderResources)
protected boolean
validateResources(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()
- Specified by:
getLastModified
in interfaceWebResource
- Returns:
File.lastModified()
.
-
getLastModifiedHttp
public java.lang.String getLastModifiedHttp()
- Specified by:
getLastModifiedHttp
in 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()
- Specified by:
exists
in interfaceWebResource
- 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 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:
isVirtual
in interfaceWebResource
- Returns:
true
for a virtual resource
-
isDirectory
public boolean isDirectory()
- Specified by:
isDirectory
in interfaceWebResource
- Returns:
File.isDirectory()
.
-
isFile
public boolean isFile()
- Specified by:
isFile
in interfaceWebResource
- Returns:
File.isFile()
.
-
delete
public boolean delete()
- Specified by:
delete
in interfaceWebResource
- Returns:
File.delete()
.
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceWebResource
- Returns:
File.getName()
.
-
getContentLength
public long getContentLength()
- Specified by:
getContentLength
in interfaceWebResource
- Returns:
File.length()
.
-
getCanonicalPath
public java.lang.String getCanonicalPath()
- Specified by:
getCanonicalPath
in interfaceWebResource
- Returns:
File.getCanonicalPath()
.
-
canRead
public boolean canRead()
- Specified by:
canRead
in interfaceWebResource
- Returns:
File.canRead()
.
-
getWebappPath
public java.lang.String getWebappPath()
- Specified by:
getWebappPath
in 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: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 interfaceWebResource
- 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 interfaceWebResource
- Parameters:
mimeType
- The mime type that will be associated with the resource
-
getMimeType
public java.lang.String getMimeType()
- Specified by:
getMimeType
in interfaceWebResource
- 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 interfaceWebResource
- 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 interfaceWebResource
- 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 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()
- Specified by:
getURL
in interfaceWebResource
- 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 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()
- Specified by:
getCertificates
in 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()
- Specified by:
getManifest
in interfaceWebResource
- Returns:
- the manifest associated with this resource or @null if none.
- See Also:
JarFile.getManifest()
-
getWebResourceRoot
public WebResourceRoot getWebResourceRoot()
- Specified by:
getWebResourceRoot
in interfaceWebResource
- Returns:
- a reference to the WebResourceRoot of which this WebResource is a part.
-
-