| java.lang.Object org.apache.catalina.core.ContainerBase
All known Subclasses: org.apache.catalina.core.StandardEngine, org.apache.catalina.core.StandardContext, org.apache.catalina.core.StandardHost, org.apache.catalina.core.StandardWrapper,
ContainerBase | abstract public class ContainerBase implements Container,Lifecycle,Pipeline(Code) | | Abstract implementation of the Container interface, providing common
functionality required by nearly every implementation. Classes extending
this base class must implement getInfo() , and may implement
a replacement for invoke() .
All subclasses of this abstract base class will include support for a
Pipeline object that defines the processing to be performed for each request
received by the invoke() method of this class, utilizing the
"Chain of Responsibility" design pattern. A subclass should encapsulate its
own processing functionality as a Valve , and configure this
Valve into the pipeline by calling setBasic() .
This implementation fires property change events, per the JavaBeans design
pattern, for changes in singleton properties. In addition, it fires the
following ContainerEvent events to listeners who register
themselves with addContainerListener() :
Type |
Data |
Description |
addChild |
Container |
Child container added to this Container. |
addValve |
Valve |
Valve added to this Container. |
removeChild |
Container |
Child container removed from this Container. |
removeValve |
Valve |
Valve removed from this Container. |
start |
null |
Container was started. |
stop |
null |
Container was stopped. |
Subclasses that fire additional events should document them in the
class comments of the implementation class.
author: Craig R. McClanahan version: $Revision: 1.21 $ $Date: 2002/06/09 02:19:42 $ |
Field Summary | |
protected HashMap | children The child Containers belonging to this Container, keyed by name. | protected Cluster | cluster The cluster with which this Container is associated. | protected int | debug The debugging detail level for this component. | protected LifecycleSupport | lifecycle The lifecycle event support for this component. | protected ArrayList | listeners The container event listeners for this Container. | protected Loader | loader The Loader implementation with which this Container is associated. | protected Logger | logger The Logger implementation with which this Container is associated. | protected Manager | manager The Manager implementation with which this Container is associated. | protected Mapper | mapper The one and only Mapper associated with this Container, if any. | protected String | mapperClass The Java class name of the default Mapper class for this Container. | protected HashMap | mappers The set of Mappers associated with this Container, keyed by protocol. | protected String | name The human-readable name of this Container. | protected Container | parent The parent Container to which this Container is a child. | protected ClassLoader | parentClassLoader The parent class loader to be configured when we install a Loader. | protected Pipeline | pipeline The Pipeline object with which this Container is associated. | protected Realm | realm The Realm with which this Container is associated. | protected DirContext | resources The resources DirContext object with which this Container is associated. | protected static StringManager | sm The string manager for this package. | protected boolean | started | protected PropertyChangeSupport | support The property change support for this component. |
Method Summary | |
public void | addChild(Container child) Add a new child Container to those associated with this Container,
if supported. | public void | addContainerListener(ContainerListener listener) Add a container event listener to this component. | protected void | addDefaultMapper(String mapperClass) Add a default Mapper implementation if none have been configured
explicitly. | public void | addLifecycleListener(LifecycleListener listener) Add a lifecycle event listener to this component. | public void | addMapper(Mapper mapper) Add the specified Mapper associated with this Container. | public void | addPropertyChangeListener(PropertyChangeListener listener) Add a property change listener to this component. | public synchronized void | addValve(Valve valve) Add a new Valve to the end of the pipeline associated with this
Container. | public Container | findChild(String name) | public Container[] | findChildren() Return the set of children Containers associated with this Container. | public ContainerListener[] | findContainerListeners() Return the set of container listeners associated with this Container. | public LifecycleListener[] | findLifecycleListeners() Get the lifecycle listeners associated with this lifecycle. | public Mapper | findMapper(String protocol) Return the Mapper associated with the specified protocol, if there
is one. | public Mapper[] | findMappers() Return the set of Mappers associated with this Container. | public void | fireContainerEvent(String type, Object data) Notify all container event listeners that a particular event has
occurred for this Container. | public Valve | getBasic() Return the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any). | public Cluster | getCluster() Return the Cluster with which this Container is associated. | public int | getDebug() Return the debugging detail level for this component. | abstract public String | getInfo() Return descriptive information about this Container implementation and
the corresponding version number, in the format
<description>/<version> . | public Loader | getLoader() Return the Loader with which this Container is associated. | public Logger | getLogger() Return the Logger with which this Container is associated. | public Manager | getManager() Return the Manager with which this Container is associated. | public String | getName() Return a name string (suitable for use by humans) that describes this
Container. | public Container | getParent() Return the Container for which this Container is a child, if there is
one. | public ClassLoader | getParentClassLoader() Return the parent class loader (if any) for this web application. | public Pipeline | getPipeline() Return the Pipeline object that manages the Valves associated with
this Container. | public Realm | getRealm() Return the Realm with which this Container is associated. | public DirContext | getResources() Return the resources DirContext object with which this Container is
associated. | public Valve[] | getValves() Return the set of Valves in the pipeline associated with this
Container, including the basic Valve (if any). | public void | invoke(Request request, Response response) Process the specified Request, to produce the corresponding Response,
by invoking the first Valve in our pipeline (if any), or the basic
Valve otherwise. | protected void | log(String message) Log the specified message to our current Logger (if any). | protected void | log(String message, Throwable throwable) Log the specified message and exception to our current Logger
(if any). | protected String | logName() | public Container | map(Request request, boolean update) Return the child Container that should be used to process this Request,
based upon its characteristics. | public void | removeChild(Container child) Remove an existing child Container from association with this parent
Container. | public void | removeContainerListener(ContainerListener listener) Remove a container event listener from this component. | public void | removeLifecycleListener(LifecycleListener listener) Remove a lifecycle event listener from this component. | public void | removeMapper(Mapper mapper) Remove a Mapper associated with this Container, if any. | public void | removePropertyChangeListener(PropertyChangeListener listener) Remove a property change listener from this component. | public synchronized void | removeValve(Valve valve) Remove the specified Valve from the pipeline associated with this
Container, if it is found; otherwise, do nothing. | public void | setBasic(Valve valve) Set the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any). | public synchronized void | setCluster(Cluster cluster) Set the Cluster with which this Container is associated. | public void | setDebug(int debug) Set the debugging detail level for this component. | public synchronized void | setLoader(Loader loader) Set the Loader with which this Container is associated. | public synchronized void | setLogger(Logger logger) Set the Logger with which this Container is associated. | public synchronized void | setManager(Manager manager) Set the Manager with which this Container is associated. | public void | setName(String name) Set a name string (suitable for use by humans) that describes this
Container. | public void | setParent(Container container) Set the parent Container to which this Container is being added as a
child. | public void | setParentClassLoader(ClassLoader parent) Set the parent class loader (if any) for this web application. | public synchronized void | setRealm(Realm realm) Set the Realm with which this Container is associated. | public synchronized void | setResources(DirContext resources) Set the resources DirContext object with which this Container is
associated. | public synchronized void | start() Prepare for active use of the public methods of this Component. | public synchronized void | stop() Gracefully shut down active use of the public methods of this Component. |
children | protected HashMap children(Code) | | The child Containers belonging to this Container, keyed by name.
|
cluster | protected Cluster cluster(Code) | | The cluster with which this Container is associated.
|
debug | protected int debug(Code) | | The debugging detail level for this component.
|
listeners | protected ArrayList listeners(Code) | | The container event listeners for this Container.
|
loader | protected Loader loader(Code) | | The Loader implementation with which this Container is associated.
|
logger | protected Logger logger(Code) | | The Logger implementation with which this Container is associated.
|
manager | protected Manager manager(Code) | | The Manager implementation with which this Container is associated.
|
mapper | protected Mapper mapper(Code) | | The one and only Mapper associated with this Container, if any.
|
mapperClass | protected String mapperClass(Code) | | The Java class name of the default Mapper class for this Container.
|
mappers | protected HashMap mappers(Code) | | The set of Mappers associated with this Container, keyed by protocol.
|
name | protected String name(Code) | | The human-readable name of this Container.
|
parent | protected Container parent(Code) | | The parent Container to which this Container is a child.
|
parentClassLoader | protected ClassLoader parentClassLoader(Code) | | The parent class loader to be configured when we install a Loader.
|
pipeline | protected Pipeline pipeline(Code) | | The Pipeline object with which this Container is associated.
|
realm | protected Realm realm(Code) | | The Realm with which this Container is associated.
|
resources | protected DirContext resources(Code) | | The resources DirContext object with which this Container is associated.
|
started | protected boolean started(Code) | | Has this component been started?
|
addChild | public void addChild(Container child)(Code) | | Add a new child Container to those associated with this Container,
if supported. Prior to adding this Container to the set of children,
the child's setParent() method must be called, with this
Container as an argument. This method may thrown an
IllegalArgumentException if this Container chooses not
to be attached to the specified Container, in which case it is not added
Parameters: child - New child Container to be added exception: IllegalArgumentException - if this exception is thrown bythe setParent() method of the child Container exception: IllegalArgumentException - if the new child does not havea name unique from that of existing children of this Container exception: IllegalStateException - if this Container does not supportchild Containers |
addContainerListener | public void addContainerListener(ContainerListener listener)(Code) | | Add a container event listener to this component.
Parameters: listener - The listener to add |
addDefaultMapper | protected void addDefaultMapper(String mapperClass)(Code) | | Add a default Mapper implementation if none have been configured
explicitly.
Parameters: mapperClass - Java class name of the default Mapper |
addLifecycleListener | public void addLifecycleListener(LifecycleListener listener)(Code) | | Add a lifecycle event listener to this component.
Parameters: listener - The listener to add |
addMapper | public void addMapper(Mapper mapper)(Code) | | Add the specified Mapper associated with this Container.
Parameters: mapper - The corresponding Mapper implementation exception: IllegalArgumentException - if this exception is thrown bythe setContainer() method of the Mapper |
addPropertyChangeListener | public void addPropertyChangeListener(PropertyChangeListener listener)(Code) | | Add a property change listener to this component.
Parameters: listener - The listener to add |
addValve | public synchronized void addValve(Valve valve)(Code) | | Add a new Valve to the end of the pipeline associated with this
Container. Prior to adding the Valve, the Valve's
setContainer method must be called, with this Container
as an argument. The method may throw an
IllegalArgumentException if this Valve chooses not to
be associated with this Container, or IllegalStateException
if it is already associated with a different Container.
Parameters: valve - Valve to be added exception: IllegalArgumentException - if this Container refused toaccept the specified Valve exception: IllegalArgumentException - if the specifie Valve refuses to beassociated with this Container exception: IllegalStateException - if the specified Valve is alreadyassociated with a different Container |
findChild | public Container findChild(String name)(Code) | | Return the child Container, associated with this Container, with
the specified name (if any); otherwise, return null
Parameters: name - Name of the child Container to be retrieved |
findChildren | public Container[] findChildren()(Code) | | Return the set of children Containers associated with this Container.
If this Container has no children, a zero-length array is returned.
|
findContainerListeners | public ContainerListener[] findContainerListeners()(Code) | | Return the set of container listeners associated with this Container.
If this Container has no registered container listeners, a zero-length
array is returned.
|
findLifecycleListeners | public LifecycleListener[] findLifecycleListeners()(Code) | | Get the lifecycle listeners associated with this lifecycle. If this
Lifecycle has no listeners registered, a zero-length array is returned.
|
findMapper | public Mapper findMapper(String protocol)(Code) | | Return the Mapper associated with the specified protocol, if there
is one. If there is only one defined Mapper, use it for all protocols.
If there is no matching Mapper, return null .
Parameters: protocol - Protocol for which to find a Mapper |
findMappers | public Mapper[] findMappers()(Code) | | Return the set of Mappers associated with this Container. If this
Container has no Mappers, a zero-length array is returned.
|
fireContainerEvent | public void fireContainerEvent(String type, Object data)(Code) | | Notify all container event listeners that a particular event has
occurred for this Container. The default implementation performs
this notification synchronously using the calling thread.
Parameters: type - Event type Parameters: data - Event data |
getBasic | public Valve getBasic()(Code) | | Return the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any).
|
getCluster | public Cluster getCluster()(Code) | | Return the Cluster with which this Container is associated. If there is
no associated Cluster, return the Cluster associated with our parent
Container (if any); otherwise return null .
|
getDebug | public int getDebug()(Code) | | Return the debugging detail level for this component.
|
getInfo | abstract public String getInfo()(Code) | | Return descriptive information about this Container implementation and
the corresponding version number, in the format
<description>/<version> .
|
getLoader | public Loader getLoader()(Code) | | Return the Loader with which this Container is associated. If there is
no associated Loader, return the Loader associated with our parent
Container (if any); otherwise, return null .
|
getLogger | public Logger getLogger()(Code) | | Return the Logger with which this Container is associated. If there is
no associated Logger, return the Logger associated with our parent
Container (if any); otherwise return null .
|
getManager | public Manager getManager()(Code) | | Return the Manager with which this Container is associated. If there is
no associated Manager, return the Manager associated with our parent
Container (if any); otherwise return null .
|
getName | public String getName()(Code) | | Return a name string (suitable for use by humans) that describes this
Container. Within the set of child containers belonging to a particular
parent, Container names must be unique.
|
getParent | public Container getParent()(Code) | | Return the Container for which this Container is a child, if there is
one. If there is no defined parent, return null .
|
getParentClassLoader | public ClassLoader getParentClassLoader()(Code) | | Return the parent class loader (if any) for this web application.
This call is meaningful only after a Loader has
been configured.
|
getPipeline | public Pipeline getPipeline()(Code) | | Return the Pipeline object that manages the Valves associated with
this Container.
|
getRealm | public Realm getRealm()(Code) | | Return the Realm with which this Container is associated. If there is
no associated Realm, return the Realm associated with our parent
Container (if any); otherwise return null .
|
getResources | public DirContext getResources()(Code) | | Return the resources DirContext object with which this Container is
associated. If there is no associated resources object, return the
resources associated with our parent Container (if any); otherwise
return null .
|
getValves | public Valve[] getValves()(Code) | | Return the set of Valves in the pipeline associated with this
Container, including the basic Valve (if any). If there are no
such Valves, a zero-length array is returned.
|
invoke | public void invoke(Request request, Response response) throws IOException, ServletException(Code) | | Process the specified Request, to produce the corresponding Response,
by invoking the first Valve in our pipeline (if any), or the basic
Valve otherwise.
Parameters: request - Request to be processed Parameters: response - Response to be produced exception: IllegalStateException - if neither a pipeline or a basicValve have been configured for this Container exception: IOException - if an input/output error occurred whileprocessing exception: ServletException - if a ServletException was thrownwhile processing this request |
log | protected void log(String message)(Code) | | Log the specified message to our current Logger (if any).
Parameters: message - Message to be logged |
log | protected void log(String message, Throwable throwable)(Code) | | Log the specified message and exception to our current Logger
(if any).
Parameters: message - Message to be logged Parameters: throwable - Related exception |
logName | protected String logName()(Code) | | Return the abbreviated name of this container for logging messsages
|
map | public Container map(Request request, boolean update)(Code) | | Return the child Container that should be used to process this Request,
based upon its characteristics. If no such child Container can be
identified, return null instead.
Parameters: request - Request being processed Parameters: update - Update the Request to reflect the mapping selection? |
removeChild | public void removeChild(Container child)(Code) | | Remove an existing child Container from association with this parent
Container.
Parameters: child - Existing child Container to be removed |
removeContainerListener | public void removeContainerListener(ContainerListener listener)(Code) | | Remove a container event listener from this component.
Parameters: listener - The listener to remove |
removeLifecycleListener | public void removeLifecycleListener(LifecycleListener listener)(Code) | | Remove a lifecycle event listener from this component.
Parameters: listener - The listener to remove |
removeMapper | public void removeMapper(Mapper mapper)(Code) | | Remove a Mapper associated with this Container, if any.
Parameters: mapper - The Mapper to be removed |
removePropertyChangeListener | public void removePropertyChangeListener(PropertyChangeListener listener)(Code) | | Remove a property change listener from this component.
Parameters: listener - The listener to remove |
removeValve | public synchronized void removeValve(Valve valve)(Code) | | Remove the specified Valve from the pipeline associated with this
Container, if it is found; otherwise, do nothing.
Parameters: valve - Valve to be removed |
setBasic | public void setBasic(Valve valve)(Code) | | Set the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any). Prioer to setting the basic Valve,
the Valve's setContainer() will be called, if it
implements Contained , with the owning Container as an
argument. The method may throw an IllegalArgumentException
if this Valve chooses not to be associated with this Container, or
IllegalStateException if it is already associated with
a different Container.
Parameters: valve - Valve to be distinguished as the basic Valve |
setCluster | public synchronized void setCluster(Cluster cluster)(Code) | | Set the Cluster with which this Container is associated.
Parameters: manager - The newly associated Cluster |
setDebug | public void setDebug(int debug)(Code) | | Set the debugging detail level for this component.
Parameters: debug - The new debugging detail level |
setLoader | public synchronized void setLoader(Loader loader)(Code) | | Set the Loader with which this Container is associated.
Parameters: loader - The newly associated loader |
setLogger | public synchronized void setLogger(Logger logger)(Code) | | Set the Logger with which this Container is associated.
Parameters: logger - The newly associated Logger |
setManager | public synchronized void setManager(Manager manager)(Code) | | Set the Manager with which this Container is associated.
Parameters: manager - The newly associated Manager |
setName | public void setName(String name)(Code) | | Set a name string (suitable for use by humans) that describes this
Container. Within the set of child containers belonging to a particular
parent, Container names must be unique.
Parameters: name - New name of this container exception: IllegalStateException - if this Container has already beenadded to the children of a parent Container (after which the namemay not be changed) |
setParent | public void setParent(Container container)(Code) | | Set the parent Container to which this Container is being added as a
child. This Container may refuse to become attached to the specified
Container by throwing an exception.
Parameters: container - Container to which this Container is being addedas a child exception: IllegalArgumentException - if this Container refuses to becomeattached to the specified Container |
setParentClassLoader | public void setParentClassLoader(ClassLoader parent)(Code) | | Set the parent class loader (if any) for this web application.
This call is meaningful only before a Loader has
been configured, and the specified value (if non-null) should be
passed as an argument to the class loader constructor.
Parameters: parent - The new parent class loader |
setRealm | public synchronized void setRealm(Realm realm)(Code) | | Set the Realm with which this Container is associated.
Parameters: realm - The newly associated Realm |
setResources | public synchronized void setResources(DirContext resources)(Code) | | Set the resources DirContext object with which this Container is
associated.
Parameters: resources - The newly associated DirContext |
start | public synchronized void start() throws LifecycleException(Code) | | Prepare for active use of the public methods of this Component.
exception: LifecycleException - if this component detects a fatal errorthat prevents it from being started |
stop | public synchronized void stop() throws LifecycleException(Code) | | Gracefully shut down active use of the public methods of this Component.
exception: LifecycleException - if this component detects a fatal errorthat needs to be reported |
|
|