Class DirResourceSet
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.webresources.AbstractResourceSet
org.apache.catalina.webresources.AbstractFileResourceSet
org.apache.catalina.webresources.DirResourceSet
- All Implemented Interfaces:
Lifecycle,WebResourceLockSet,WebResourceSet
Represents a
WebResourceSet based on a directory.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUseNested classes/interfaces inherited from interface org.apache.catalina.WebResourceLockSet
WebResourceLockSet.ResourceLock -
Field Summary
Fields inherited from class org.apache.catalina.webresources.AbstractFileResourceSet
EMPTY_STRING_ARRAYFields inherited from class org.apache.catalina.webresources.AbstractResourceSet
smFields 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
ConstructorsConstructorDescriptionA no argument constructor is required for this to work with the digester.DirResourceSet(WebResourceRoot root, String webAppMount, String base, String internalPath) Creates a newWebResourceSetbased on a directory. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidgetResource(String path) Obtain the object that represents the resource at the given path.protected voidSubclasses implement this method to perform any instance initialisation required.String[]Obtain the list of the names of all of the files and directories located in the specified directory.listWebAppPaths(String path) Obtain the Set of the web applications pathnames of all of the files and directories located in the specified directory.lockForRead(String path) Lock the resource at the provided path for reading.lockForWrite(String path) Lock the resource at the provided path for writing.booleanCreate a new directory at the given path.voidunlockForRead(WebResourceLockSet.ResourceLock resourceLock) Release a read lock from the resource associated with the givenWebResourceLockSet.ResourceLock.voidunlockForWrite(WebResourceLockSet.ResourceLock resourceLock) Release the write lock from the resource associated with the givenWebResourceLockSet.ResourceLock.booleanwrite(String path, InputStream is, boolean overwrite) Create a new resource at the requested path using the provided InputStream.Methods inherited from class org.apache.catalina.webresources.AbstractFileResourceSet
file, gc, getAllowLinking, getBaseUrl, getFileBase, isReadOnly, logIgnoredSymlink, setAllowLinking, setReadOnlyMethods inherited from class org.apache.catalina.webresources.AbstractResourceSet
checkPath, destroyInternal, getBase, getClassLoaderOnly, getInternalPath, getManifest, getRoot, getStaticOnly, getWebAppMount, isPathMounted, setBase, setClassLoaderOnly, setInternalPath, setManifest, setRoot, setStaticOnly, setWebAppMount, startInternal, stopInternalMethods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.catalina.Lifecycle
addLifecycleListener, destroy, findLifecycleListeners, getState, getStateName, init, removeLifecycleListener, start, stop
-
Constructor Details
-
DirResourceSet
public DirResourceSet()A no argument constructor is required for this to work with the digester. -
DirResourceSet
Creates a newWebResourceSetbased on a directory.- Parameters:
root- TheWebResourceRootthis newWebResourceSetwill be added to.webAppMount- The path within the web application at which thisWebResourceSetwill be mounted. For example, to add a directory of JARs to a web application, the directory would be mounted at "/WEB-INF/lib/"base- The absolute path to the directory on the file system from which the resources will be served.internalPath- The path within this newWebResourceSetwhere resources will be served from.
-
-
Method Details
-
getResource
Description copied from interface:WebResourceSetObtain the object that represents the resource at the given path. Note the resource at that path may not exist.- Specified by:
getResourcein interfaceWebResourceSet- 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
-
list
Description copied from interface:WebResourceSetObtain the list of the names of all of the files and directories located in the specified directory.- Specified by:
listin interfaceWebResourceSet- 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
Description copied from interface:WebResourceSetObtain 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.- Specified by:
listWebAppPathsin interfaceWebResourceSet- 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.
-
mkdir
Description copied from interface:WebResourceSetCreate a new directory at the given path.- Specified by:
mkdirin interfaceWebResourceSet- Parameters:
path- The path for the new resource to create relative to the root of the web application. It must start with '/'.- Returns:
trueif the directory was created, otherwisefalse
-
write
Description copied from interface:WebResourceSetCreate a new resource at the requested path using the provided InputStream.- Specified by:
writein interfaceWebResourceSet- 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- Iftrueand the resource already exists it will be overwritten. Iffalseand the resource already exists the write will fail.- Returns:
trueif and only if the new Resource is written
-
checkType
- Specified by:
checkTypein classAbstractFileResourceSet
-
initInternal
Description copied from class:LifecycleBaseSubclasses implement this method to perform any instance initialisation required.- Overrides:
initInternalin classAbstractFileResourceSet- Throws:
LifecycleException- If the initialisation fails
-
lockForRead
Description copied from interface:WebResourceLockSetLock the resource at the provided path for reading. The resource is not required to exist. Read locks are not exclusive.- Specified by:
lockForReadin interfaceWebResourceLockSet- Parameters:
path- The path to the resource to be locked for reading- Returns:
- The
WebResourceLockSet.ResourceLockthat must be passed toWebResourceLockSet.unlockForRead(ResourceLock)to release the lock
-
unlockForRead
Description copied from interface:WebResourceLockSetRelease a read lock from the resource associated with the givenWebResourceLockSet.ResourceLock.- Specified by:
unlockForReadin interfaceWebResourceLockSet- Parameters:
resourceLock- TheWebResourceLockSet.ResourceLockassociated with the resource for which a read lock should be released
-
lockForWrite
Description copied from interface:WebResourceLockSetLock the resource at the provided path for writing. The resource is not required to exist. Write locks are exclusive.- Specified by:
lockForWritein interfaceWebResourceLockSet- Parameters:
path- The path to the resource to be locked for writing- Returns:
- The
WebResourceLockSet.ResourceLockthat must be passed toWebResourceLockSet.unlockForWrite(ResourceLock)to release the lock
-
unlockForWrite
Description copied from interface:WebResourceLockSetRelease the write lock from the resource associated with the givenWebResourceLockSet.ResourceLock.- Specified by:
unlockForWritein interfaceWebResourceLockSet- Parameters:
resourceLock- TheWebResourceLockSet.ResourceLockassociated with the resource for which the write lock should be released
-