Package org.apache.catalina.webresources
Class AbstractArchiveResourceSet
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.webresources.AbstractResourceSet
-
- org.apache.catalina.webresources.AbstractArchiveResourceSet
-
- All Implemented Interfaces:
Lifecycle
,WebResourceSet
- Direct Known Subclasses:
AbstractSingleArchiveResourceSet
,JarWarResourceSet
public abstract class AbstractArchiveResourceSet extends AbstractResourceSet
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,java.util.jar.JarEntry>
archiveEntries
protected java.lang.Object
archiveLock
-
Fields inherited from class org.apache.catalina.webresources.AbstractResourceSet
sm
-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description AbstractArchiveResourceSet()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
closeJarFile()
protected abstract WebResource
createArchiveResource(java.util.jar.JarEntry jarEntry, java.lang.String webAppPath, java.util.jar.Manifest manifest)
void
gc()
Implementations may cache some information to improve performance.protected abstract java.util.Map<java.lang.String,java.util.jar.JarEntry>
getArchiveEntries(boolean single)
Obtain the map of entries in the archive.protected abstract java.util.jar.JarEntry
getArchiveEntry(java.lang.String pathInArchive)
Obtain a single entry from the archive.java.net.URL
getBaseUrl()
Obtain the base URL for this set of resources.protected java.lang.String
getBaseUrlString()
WebResource
getResource(java.lang.String path)
Obtain the object that represents the resource at the given path.protected abstract boolean
isMultiRelease()
boolean
isReadOnly()
Obtains the current value of the read-only setting for this set of resources.java.lang.String[]
list(java.lang.String path)
Obtain the list of the names of all of the files and directories located in the specified directory.java.util.Set<java.lang.String>
listWebAppPaths(java.lang.String path)
Obtain the Set of the web applications pathnames of all of the files and directories located in the specified directory.boolean
mkdir(java.lang.String path)
Create a new directory at the given path.protected java.util.jar.JarFile
openJarFile()
protected void
setBaseUrl(java.net.URL baseUrl)
void
setReadOnly(boolean readOnly)
Configures whether or not this set of resources is read-only.boolean
write(java.lang.String path, java.io.InputStream is, boolean overwrite)
Create a new resource at the requested path using the provided InputStream.-
Methods inherited from class org.apache.catalina.webresources.AbstractResourceSet
checkPath, destroyInternal, getBase, getClassLoaderOnly, getInternalPath, getManifest, getRoot, getStaticOnly, getWebAppMount, setBase, setClassLoaderOnly, setInternalPath, setManifest, setRoot, setStaticOnly, setWebAppMount, startInternal, stopInternal
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, initInternal, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop
-
-
-
-
Method Detail
-
setBaseUrl
protected final void setBaseUrl(java.net.URL baseUrl)
-
getBaseUrl
public final java.net.URL getBaseUrl()
Description copied from interface:WebResourceSet
Obtain the base URL for this set of resources. One of the uses of this is to grant read permissions to the resources when running under a security manager.- Returns:
- The base URL for this set of resources
-
getBaseUrlString
protected final java.lang.String getBaseUrlString()
-
list
public final java.lang.String[] list(java.lang.String path)
Description copied from interface:WebResourceSet
Obtain the list of the names of all of the files and directories located in the specified directory.- Parameters:
path
- The path for the resource of interest relative to the root of the web application. It must start with '/'.- Returns:
- The list of resources. If path does not refer to a directory then a zero length array will be returned.
-
listWebAppPaths
public final java.util.Set<java.lang.String> listWebAppPaths(java.lang.String path)
Description copied from interface:WebResourceSet
Obtain the Set of the web applications pathnames of all of the files and directories located in the specified directory. Paths representing directories will end with a "/" character.- Parameters:
path
- The path for the resource of interest relative to the root of the web application. It must start with '/'.- Returns:
- The Set of resources. If path does not refer to a directory then an empty set will be returned.
-
getArchiveEntries
protected abstract java.util.Map<java.lang.String,java.util.jar.JarEntry> getArchiveEntries(boolean single)
Obtain the map of entries in the archive. May return null in which casegetArchiveEntry(String)
should be used.- Parameters:
single
- Is this request being make to support a single lookup? If false, a map will always be returned. If true, implementations may use this as a hint in determining the optimum way to respond.- Returns:
- The archives entries mapped to their names or null if
getArchiveEntry(String)
should be used.
-
getArchiveEntry
protected abstract java.util.jar.JarEntry getArchiveEntry(java.lang.String pathInArchive)
Obtain a single entry from the archive. For performance reasons,getArchiveEntries(boolean)
should always be called first and the archive entry looked up in the map if one is returned. Only if that call returns null should this method be used.- Parameters:
pathInArchive
- The path in the archive of the entry required- Returns:
- The specified archive entry or null if it does not exist
-
mkdir
public final boolean mkdir(java.lang.String path)
Description copied from interface:WebResourceSet
Create a new directory at the given path.- Parameters:
path
- The path for the new resource to create relative to the root of the web application. It must start with '/'.- Returns:
true
if the directory was created, otherwisefalse
-
write
public final boolean write(java.lang.String path, java.io.InputStream is, boolean overwrite)
Description copied from interface:WebResourceSet
Create a new resource at the requested path using the provided InputStream.- Parameters:
path
- The path to be used for the new Resource. It is relative to the root of the web application and must start with '/'.is
- The InputStream that will provide the content for the new Resource.overwrite
- Iftrue
and the resource already exists it will be overwritten. Iffalse
and the resource already exists the write will fail.- Returns:
true
if and only if the new Resource is written
-
getResource
public final WebResource getResource(java.lang.String path)
Description copied from interface:WebResourceSet
Obtain the object that represents the resource at the given path. Note the resource at that path may not exist.- Parameters:
path
- The path for the resource of interest relative to the root of the web application. It must start with '/'.- Returns:
- The object that represents the resource at the given path
-
isMultiRelease
protected abstract boolean isMultiRelease()
-
createArchiveResource
protected abstract WebResource createArchiveResource(java.util.jar.JarEntry jarEntry, java.lang.String webAppPath, java.util.jar.Manifest manifest)
-
isReadOnly
public final boolean isReadOnly()
Description copied from interface:WebResourceSet
Obtains the current value of the read-only setting for this set of resources.- Returns:
true
if this set of resources is configured to be read-only, otherwisefalse
-
setReadOnly
public void setReadOnly(boolean readOnly)
Description copied from interface:WebResourceSet
Configures whether or not this set of resources is read-only.- Parameters:
readOnly
-true
if this set of resources should be configured to be read-only
-
openJarFile
protected java.util.jar.JarFile openJarFile() throws java.io.IOException
- Throws:
java.io.IOException
-
closeJarFile
protected void closeJarFile()
-
gc
public void gc()
Description copied from interface:WebResourceSet
Implementations may cache some information to improve performance. This method triggers the clean-up of those resources.
-
-