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 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 this ValveContext 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 this ValveContext 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.