Package org.apache.catalina.webresources
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
AWebResourceSet
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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
-
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 EmptyResourceSet(WebResourceRoot root)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
destroyInternal()
Sub-classes implement this method to perform any instance destruction required.void
gc()
Implementations may cache some information to improve performance.java.net.URL
getBaseUrl()
Obtain the base URL for this set of resources.boolean
getClassLoaderOnly()
Should resources returned by this resource set only be included in any results when the lookup is explicitly looking for class loader resources.WebResource
getResource(java.lang.String path)
Obtain the object that represents the resource at the given path.boolean
getStaticOnly()
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.protected void
initInternal()
Sub-classes implement this method to perform any instance initialisation required.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.void
setClassLoaderOnly(boolean classLoaderOnly)
void
setReadOnly(boolean readOnly)
Configures whether or not this set of resources is read-only.void
setRoot(WebResourceRoot root)
void
setStaticOnly(boolean staticOnly)
protected void
startInternal()
Sub-classes must ensure that the state is changed toLifecycleState.STARTING
during the execution of this method.protected void
stopInternal()
Sub-classes must ensure that the state is changed toLifecycleState.STOPPING
during the execution of this method.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.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
-
EmptyResourceSet
public EmptyResourceSet(WebResourceRoot root)
-
-
Method Detail
-
getResource
public WebResource getResource(java.lang.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 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)
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 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)
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 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)
Create a new directory at the given path.This implementation always returns false.
- Specified by:
mkdir
in interfaceWebResourceSet
- 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 boolean write(java.lang.String path, java.io.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 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
- 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
-
setRoot
public void setRoot(WebResourceRoot root)
- Specified by:
setRoot
in interfaceWebResourceSet
-
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 interfaceWebResourceSet
- Returns:
true
if these resources should only be used for class loader resource lookups, otherwisefalse
-
setClassLoaderOnly
public void setClassLoaderOnly(boolean classLoaderOnly)
- Specified by:
setClassLoaderOnly
in interfaceWebResourceSet
-
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 interfaceWebResourceSet
- Returns:
true
if these resources should only be used for static (non-class loader) resource lookups, otherwisefalse
-
setStaticOnly
public void setStaticOnly(boolean staticOnly)
- Specified by:
setStaticOnly
in interfaceWebResourceSet
-
getBaseUrl
public java.net.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 interfaceWebResourceSet
- 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 interfaceWebResourceSet
- 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 interfaceWebResourceSet
- Returns:
true
if this set of resources is configured to be read-only, otherwisefalse
-
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 interfaceWebResourceSet
-
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 classLifecycleBase
- 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 toLifecycleState.STARTING
during the execution of this method. Changing state will trigger theLifecycle.START_EVENT
event. If a component fails to start it may either throw aLifecycleException
which will cause it's parent to fail to start or it can place itself in the error state in which caseLifecycleBase.stop()
will be called on the failed component but the parent component will continue to start normally.- Specified by:
startInternal
in classLifecycleBase
- 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 toLifecycleState.STOPPING
during the execution of this method. Changing state will trigger theLifecycle.STOP_EVENT
event.- Specified by:
stopInternal
in classLifecycleBase
- 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 classLifecycleBase
- Throws:
LifecycleException
- If the destruction fails
-
-