Wombat::Valve - internal valve interface
This interface specifies a component that assists in processing
requests for a particular Container. A series of Valves is generally
associated with each other via a Pipeline.
A Valve MAY perform the following actions, in the specified order:
- 
Examine and/or modify the properties of the specified Request and
Response.
- 
Examine the properties of the specified Request, completely generate
the corresponding Response, and return control to the caller.
- 
Examine the properties of the specified Request and Response, wrap
either or both of these objects to supplement their functionality, and
pass them on.
- 
If the corresponding Response was not generated (and control was not
returned), call the next Valve in the Pipeline by calling
invokeNext()on the Valve's Container.
- 
Examine, but not modify, the properties of the resulting Response
(which was created by a subsequently invoked Valve or Container).
A Valve MUST NOT do any of the following things:
- 
Change request properties that have already been used to direct the
flow of processing control for this request.
- 
Create a completed Response AND pass this Request and Response on
to the next Valve in the Pipeline.
- 
Consume bytes from the input handle associated with the Request,
unless it is completely generating the Response or wrapping the
Request before passing it on.
- 
Modify the HTTP headers included with the Response after
invokeNext()has returned.
- 
Perform any actions on the output handle associated with the specified
Response after invokeNext()has returned.
- invoke ($request, $response, $context)
 
- 
Perform request processing as required by this Valve.
Parameters 
- $request
 
- 
the Wombat::Request to be processed
- $response
 
- 
the Wombat::Response to be created
- $context
 
- 
the Wombat::ValveContext allowing access to the next Valve in the
Pipeline being processed
 Throws: 
- Servlet::ServletException
 
- 
if a servlet error occurs or is thrown by a subsequently invoked
Valve, Filter or Servlet
- Servlet::Util::IOException
 
- 
if an input or output error occurs
 
the Servlet::Util::Exception manpage,
the Wombat::Container manpage,
the Wombat::Exception manpage,
the Wombat::Pipeline manpage,
the Wombat::Request manpage,
the Wombat::Response manpage,
the Wombat::ValveContext manpage
Brian Moseley, bcm@maz.org