Package org.apache.catalina.webresources
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
public class DirResourceSet extends AbstractFileResourceSet implements WebResourceLockSet
Represents aWebResourceSetbased on a directory.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
Nested classes/interfaces inherited from interface org.apache.catalina.WebResourceLockSet
WebResourceLockSet.ResourceLock
-
-
Field Summary
-
Fields inherited from class org.apache.catalina.webresources.AbstractFileResourceSet
EMPTY_STRING_ARRAY
-
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 DirResourceSet()A no argument constructor is required for this to work with the digester.DirResourceSet(WebResourceRoot root, java.lang.String webAppMount, java.lang.String base, java.lang.String internalPath)Creates a newWebResourceSetbased on a directory.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckType(java.io.File file)WebResourcegetResource(java.lang.String path)Obtain the object that represents the resource at the given path.protected voidinitInternal()Sub-classes implement this method to perform any instance initialisation required.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.WebResourceLockSet.ResourceLocklockForRead(java.lang.String path)Lock the resource at the provided path for reading.WebResourceLockSet.ResourceLocklockForWrite(java.lang.String path)Lock the resource at the provided path for writing.booleanmkdir(java.lang.String path)Create 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(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.AbstractFileResourceSet
file, gc, getBaseUrl, getFileBase, isReadOnly, logIgnoredSymlink, setReadOnly
-
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, 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
-
-
-
-
Constructor Detail
-
DirResourceSet
public DirResourceSet()
A no argument constructor is required for this to work with the digester.
-
DirResourceSet
public DirResourceSet(WebResourceRoot root, java.lang.String webAppMount, java.lang.String base, java.lang.String internalPath)
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 Detail
-
getResource
public WebResource getResource(java.lang.String path)
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
public java.lang.String[] list(java.lang.String path)
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
public java.util.Set<java.lang.String> listWebAppPaths(java.lang.String path)
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
public boolean mkdir(java.lang.String path)
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
public boolean write(java.lang.String path, java.io.InputStream is, boolean overwrite)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
protected void checkType(java.io.File file)
- Specified by:
checkTypein classAbstractFileResourceSet
-
initInternal
protected void initInternal() throws LifecycleExceptionDescription copied from class:LifecycleBaseSub-classes implement this method to perform any instance initialisation required.- Overrides:
initInternalin classAbstractFileResourceSet- Throws:
LifecycleException- If the initialisation fails
-
lockForRead
public WebResourceLockSet.ResourceLock lockForRead(java.lang.String path)
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
public void unlockForRead(WebResourceLockSet.ResourceLock resourceLock)
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
public WebResourceLockSet.ResourceLock lockForWrite(java.lang.String path)
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
public void unlockForWrite(WebResourceLockSet.ResourceLock resourceLock)
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
-
-