Class EmptyResourceSet

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.webresources.EmptyResourceSet
All Implemented Interfaces:
Lifecycle, WebResourceSet

public class EmptyResourceSet extends LifecycleBase implements WebResourceSet
A WebResourceSet implementation that is not backed by a file system and behaves as if it has no resources available. This is primarily used in embedded mode when the web application is configured entirely programmatically and does not use any static resources from the file system.
  • Constructor Details

  • Method Details

    • getResource

      public WebResource getResource(String path)
      Obtain the object that represents the resource at the given path. Note the resource at that path may not exist.

      This implementation always returns an EmptyResource.

      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)
      Obtain the list of the names of all of the files and directories located in the specified directory.

      This implementation always returns an empty array.

      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)
      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.

      This implementation always returns an empty set.

      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)
      Create a new directory at the given path.

      This implementation always returns false.

      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)
      Create a new resource at the requested path using the provided InputStream.

      This implementation always returns false.

      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
    • setRoot

      public void setRoot(WebResourceRoot root)
      Specified by:
      setRoot in interface WebResourceSet
    • getClassLoaderOnly

      public boolean getClassLoaderOnly()
      Description copied from interface: WebResourceSet
      Should resources returned by this resource set only be included in any results when the lookup is explicitly looking for class loader resources. i.e. should these resources be excluded from look ups that are explicitly looking for static (non-class loader) resources.
      Specified by:
      getClassLoaderOnly in interface WebResourceSet
      Returns:
      true if these resources should only be used for class loader resource lookups, otherwise false
    • setClassLoaderOnly

      public void setClassLoaderOnly(boolean classLoaderOnly)
      Specified by:
      setClassLoaderOnly in interface WebResourceSet
    • getStaticOnly

      public boolean getStaticOnly()
      Description copied from interface: WebResourceSet
      Should resources returned by this resource set only be included in any results when the lookup is explicitly looking for static (non-class loader) resources. i.e. should these resources be excluded from look ups that are explicitly looking for class loader resources.
      Specified by:
      getStaticOnly in interface WebResourceSet
      Returns:
      true if these resources should only be used for static (non-class loader) resource lookups, otherwise false
    • setStaticOnly

      public void setStaticOnly(boolean staticOnly)
      Specified by:
      setStaticOnly in interface WebResourceSet
    • getBaseUrl

      public URL getBaseUrl()
      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.

      This implementation always returns null.

      Specified by:
      getBaseUrl in interface WebResourceSet
      Returns:
      The base URL for this set of resources
    • setReadOnly

      public void setReadOnly(boolean readOnly)
      Configures whether or not this set of resources is read-only.

      Calls to this method will be ignored as this implementation always read only.

      Specified by:
      setReadOnly in interface WebResourceSet
      Parameters:
      readOnly - true if this set of resources should be configured to be read-only
    • isReadOnly

      public boolean isReadOnly()
      Obtains the current value of the read-only setting for this set of resources.

      This implementation always returns true.

      Specified by:
      isReadOnly in interface WebResourceSet
      Returns:
      true if this set of resources is configured to be read-only, otherwise false
    • 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.
      Specified by:
      gc in interface WebResourceSet
    • initInternal

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

      protected void startInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes must ensure that the state is changed to LifecycleState.STARTING during the execution of this method. Changing state will trigger the Lifecycle.START_EVENT event. If a component fails to start it may either throw a LifecycleException which will cause it's parent to fail to start or it can place itself in the error state in which case LifecycleBase.stop() will be called on the failed component but the parent component will continue to start normally.
      Specified by:
      startInternal in class LifecycleBase
      Throws:
      LifecycleException - Start error occurred
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes must ensure that the state is changed to LifecycleState.STOPPING during the execution of this method. Changing state will trigger the Lifecycle.STOP_EVENT event.
      Specified by:
      stopInternal in class LifecycleBase
      Throws:
      LifecycleException - Stop error occurred
    • destroyInternal

      protected void destroyInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes implement this method to perform any instance destruction required.
      Specified by:
      destroyInternal in class LifecycleBase
      Throws:
      LifecycleException - If the destruction fails