Interface ValveContext
-
- All Known Implementing Classes:
TurbinePipeline
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
@FunctionalInterface public interface ValveContext
A ValveContext is the mechanism by which a Valve can trigger the execution of the next Valve in a Pipeline, without having to know anything about the internal implementation mechanisms. An instance of a class implementing this interface is passed as a parameter to the
Valve.invoke()
method of each executed Valve.IMPLEMENTATION NOTE: It is up to the implementation of ValveContext to ensure that simultaneous requests being processed (by separate threads) through the same Pipeline do not interfere with each other's flow of control.
- Version:
- $Revision$ $Date$
- Author:
- Craig R. McClanahan, Gunnar Rjnning, Peter Donald, Daniel Rall
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
invokeNext(PipelineData pipelineData)
Cause theinvoke()
method of the next Valve that is part of the Pipeline currently being processed (if any) to be executed, passing on the specified request and response objects plus thisValveContext
instance.
-
-
-
Method Detail
-
invokeNext
void invokeNext(PipelineData pipelineData) throws IOException, TurbineException
Cause the
invoke()
method of the next Valve that is part of the Pipeline currently being processed (if any) to be executed, passing on the specified request and response objects plus thisValveContext
instance. Exceptions thrown by a subsequently executed Valve will be passed on to our caller.If there are no more Valves to be executed, execution of this method will result in a no op.
- Parameters:
pipelineData
- The run-time information, including the servlet request and response we are processing.- Throws:
IOException
- Thrown by a subsequent Valve.TurbineException
- Thrown by a subsequent Valve.TurbineException
- No further Valves configured in the Pipeline currently being processed.
-
-