org.apache.catalina.core
Class StandardPipeline
java.lang.Object
org.apache.catalina.core.StandardPipeline
- Contained, Lifecycle, Pipeline
public class StandardPipeline
extends java.lang.Object
Standard implementation of a processing Pipeline that will invoke
a series of Valves that have been configured to be called in order. This
implementation can be used for any type of Container.
IMPLEMENTATION WARNING - This implementation assumes that no
calls to addValve()
or removeValve
are allowed
while a request is currently being processed. Otherwise, the mechanism
by which per-thread state is maintained will need to be modified.
- Craig R. McClanahan
protected Valve | basic - The basic Valve (if any) associated with this Pipeline.
|
protected Container | container - The Container with which this Pipeline is associated.
|
protected int | debug - The debugging detail level for this component.
|
protected String | info - Descriptive information about this implementation.
|
protected LifecycleSupport | lifecycle - The lifecycle event support for this component.
|
protected static StringManager | sm - The string manager for this package.
|
protected boolean | started - Has this component been started yet?
|
protected Valve[] | valves - The set of Valves (not including the Basic one, if any) associated with
this Pipeline.
|
StandardPipeline() - Construct a new StandardPipeline instance with no associated Container.
|
StandardPipeline(Container container) - Construct a new StandardPipeline instance that is associated with the
specified Container.
|
void | addLifecycleListener(LifecycleListener listener) - Add a lifecycle event listener to this component.
|
void | addValve(Valve valve) - Add a new Valve to the end of the pipeline associated with this
Container.
|
LifecycleListener[] | findLifecycleListeners() - Get the lifecycle listeners associated with this lifecycle.
|
Valve | getBasic() - Return the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any).
|
Container | getContainer() - Return the Container with which this Pipeline is associated.
|
String | getInfo() - Return descriptive information about this implementation class.
|
ObjectName[] | getValveObjectNames()
|
Valve[] | getValves() - Return the set of Valves in the pipeline associated with this
Container, including the basic Valve (if any).
|
void | invoke(Request request, Response response) - Cause the specified request and response to be processed by the Valves
associated with this pipeline, until one of these valves causes the
response to be created and returned.
|
protected void | log(String message) - Log a message on the Logger associated with our Container (if any).
|
protected void | log(String message, Throwable throwable) - Log a message on the Logger associated with our Container (if any).
|
void | removeLifecycleListener(LifecycleListener listener) - Remove a lifecycle event listener from this component.
|
void | removeValve(Valve valve) - Remove the specified Valve from the pipeline associated with this
Container, if it is found; otherwise, do nothing.
|
void | setBasic(Valve valve) - Set the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any).
|
void | setContainer(Container container) - Set the Container with which this Pipeline is associated.
|
void | start() - Prepare for active use of the public methods of this Component.
|
void | stop() - Gracefully shut down active use of the public methods of this Component.
|
basic
protected Valve basic
The basic Valve (if any) associated with this Pipeline.
container
protected Container container
The Container with which this Pipeline is associated.
debug
protected int debug
The debugging detail level for this component.
info
protected String info
Descriptive information about this implementation.
lifecycle
protected LifecycleSupport lifecycle
The lifecycle event support for this component.
sm
protected static StringManager sm
The string manager for this package.
started
protected boolean started
Has this component been started yet?
valves
protected Valve[] valves
The set of Valves (not including the Basic one, if any) associated with
this Pipeline.
StandardPipeline
public StandardPipeline()
Construct a new StandardPipeline instance with no associated Container.
StandardPipeline
public StandardPipeline(Container container)
Construct a new StandardPipeline instance that is associated with the
specified Container.
container
- The container we should be associated with
addValve
public void addValve(Valve valve)
Add a new Valve to the end of the pipeline associated with this
Container. Prior to adding the Valve, the Valve's
setContainer()
method 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.
- addValve in interface Pipeline
valve
- Valve to be added
findLifecycleListeners
public LifecycleListener[] findLifecycleListeners()
Get the lifecycle listeners associated with this lifecycle. If this
Lifecycle has no listeners registered, a zero-length array is returned.
- findLifecycleListeners in interface Lifecycle
getBasic
public Valve getBasic()
Return the Valve instance that has been distinguished as the basic
Valve for this Pipeline (if any).
- getBasic in interface Pipeline
getInfo
public String getInfo()
Return descriptive information about this implementation class.
getValveObjectNames
public ObjectName[] getValveObjectNames()
getValves
public Valve[] getValves()
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.
- getValves in interface Pipeline
invoke
public void invoke(Request request,
Response response)
throws IOException,
ServletException
Cause the specified request and response to be processed by the Valves
associated with this pipeline, until one of these valves causes the
response to be created and returned. The implementation must ensure
that multiple simultaneous requests (on different threads) can be
processed through the same Pipeline without interfering with each
other's control flow.
- invoke in interface Pipeline
request
- The servlet request we are processingresponse
- The servlet response we are creating
log
protected void log(String message)
Log a message on the Logger associated with our Container (if any).
message
- Message to be logged
log
protected void log(String message,
Throwable throwable)
Log a message on the Logger associated with our Container (if any).
message
- Message to be loggedthrowable
- Associated exception
removeValve
public void removeValve(Valve valve)
Remove the specified Valve from the pipeline associated with this
Container, if it is found; otherwise, do nothing. If the Valve is
found and removed, the Valve's setContainer(null)
method
will be called if it implements Contained
.
- removeValve in interface Pipeline
valve
- Valve to be removed
setBasic
public void setBasic(Valve valve)
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.
- setBasic in interface Pipeline
valve
- Valve to be distinguished as the basic Valve
setContainer
public void setContainer(Container container)
Set the Container with which this Pipeline is associated.
- setContainer in interface Contained
container
- The new associated container
Copyright B) 2000-2003 Apache Software Foundation. All Rights Reserved.