Class DirResourceSet

All Implemented Interfaces:
Lifecycle, WebResourceLockSet, WebResourceSet

public class DirResourceSet extends AbstractFileResourceSet implements WebResourceLockSet
Represents a WebResourceSet based on a directory.
  • Constructor Details

    • DirResourceSet

      public DirResourceSet()
      A no argument constructor is required for this to work with the digester.
    • DirResourceSet

      public DirResourceSet(WebResourceRoot root, String webAppMount, String base, String internalPath)
      Creates a new WebResourceSet based on a directory.
      Parameters:
      root - The WebResourceRoot this new WebResourceSet will be added to.
      webAppMount - The path within the web application at which this WebResourceSet will 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 new WebResourceSet where resources will be served from.
  • Method Details

    • getResource

      public WebResource getResource(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.
      Specified by:
      getResource in interface WebResourceSet
      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 String[] list(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.
      Specified by:
      list in interface WebResourceSet
      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 Set<String> listWebAppPaths(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.
      Specified by:
      listWebAppPaths in interface WebResourceSet
      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(String path)
      Description copied from interface: WebResourceSet
      Create a new directory at the given path.
      Specified by:
      mkdir in interface WebResourceSet
      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, otherwise false
    • write

      public boolean write(String path, InputStream is, boolean overwrite)
      Description copied from interface: WebResourceSet
      Create a new resource at the requested path using the provided InputStream.
      Specified by:
      write in interface WebResourceSet
      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 - If true and the resource already exists it will be overwritten. If false and the resource already exists the write will fail.
      Returns:
      true if and only if the new Resource is written
    • checkType

      protected void checkType(File file)
      Specified by:
      checkType in class AbstractFileResourceSet
    • initInternal

      protected void initInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes implement this method to perform any instance initialisation required.
      Overrides:
      initInternal in class AbstractFileResourceSet
      Throws:
      LifecycleException - If the initialisation fails
    • lockForRead

      public WebResourceLockSet.ResourceLock lockForRead(String path)
      Description copied from interface: WebResourceLockSet
      Lock the resource at the provided path for reading. The resource is not required to exist. Read locks are not exclusive.
      Specified by:
      lockForRead in interface WebResourceLockSet
      Parameters:
      path - The path to the resource to be locked for reading
      Returns:
      The WebResourceLockSet.ResourceLock that must be passed to WebResourceLockSet.unlockForRead(ResourceLock) to release the lock
    • unlockForRead

      public void unlockForRead(WebResourceLockSet.ResourceLock resourceLock)
      Description copied from interface: WebResourceLockSet
      Release a read lock from the resource associated with the given WebResourceLockSet.ResourceLock.
      Specified by:
      unlockForRead in interface WebResourceLockSet
      Parameters:
      resourceLock - The WebResourceLockSet.ResourceLock associated with the resource for which a read lock should be released
    • lockForWrite

      public WebResourceLockSet.ResourceLock lockForWrite(String path)
      Description copied from interface: WebResourceLockSet
      Lock the resource at the provided path for writing. The resource is not required to exist. Write locks are exclusive.
      Specified by:
      lockForWrite in interface WebResourceLockSet
      Parameters:
      path - The path to the resource to be locked for writing
      Returns:
      The WebResourceLockSet.ResourceLock that must be passed to WebResourceLockSet.unlockForWrite(ResourceLock) to release the lock
    • unlockForWrite

      public void unlockForWrite(WebResourceLockSet.ResourceLock resourceLock)
      Description copied from interface: WebResourceLockSet
      Release the write lock from the resource associated with the given WebResourceLockSet.ResourceLock.
      Specified by:
      unlockForWrite in interface WebResourceLockSet
      Parameters:
      resourceLock - The WebResourceLockSet.ResourceLock associated with the resource for which the write lock should be released