ValveBase (Apache Tomcat 8.5.89 API Documentation)

Package org.apache.catalina.valves

## Class ValveBase

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.valves.ValveBase

- All Implemented Interfaces:
    `javax.management.MBeanRegistration`, `Contained`, `JmxEnabled`, `Lifecycle`, `Valve`
  Direct Known Subclasses:
    `AbstractAccessLogValve`, `AuthenticatorBase`, `CrawlerSessionManagerValve`, `ErrorReportValve`, `JDBCAccessLogValve`, `JvmRouteBinderValve`, `LoadBalancerDrainingValve`, `PersistentValve`, `RemoteIpValve`, `ReplicationValve`, `RequestFilterValve`, `RewriteValve`, `SemaphoreValve`, `SingleSignOn`, `SSLValve`, `StuckThreadDetectionValve`

      public abstract class ValveBase
      extends LifecycleMBeanBase
      implements Contained, Valve

  Convenience base class for implementations of the Valve interface. A subclass MUST implement an `invoke()` method to provide the required functionality, and MAY implement the `Lifecycle` interface to provide configuration management and lifecycle support.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected boolean` | `asyncSupported` | Does this valve support Servlet 3+ async requests?
    `protected Container` | `container` | The Container whose pipeline this Valve is a component of.
    `protected Log` | `containerLog` | Container log
    `protected Valve` | `next` | The next Valve in the pipeline this Valve is a component of.
    `protected static StringManager` | `sm` |

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ValveBase()` |
    `ValveBase​(boolean asyncSupported)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `backgroundProcess()` | Execute a periodic task, such as reloading, etc.
    `Container` | `getContainer()` | Get the `Container` with which this instance is associated.
    `java.lang.String` | `getDomainInternal()` | Method implemented by sub-classes to identify the domain in which MBeans should be registered.
    `Valve` | `getNext()` | Returns the next Valve in this pipeline, or `null` if this is the last Valve in the pipeline.
    `java.lang.String` | `getObjectNameKeyProperties()` | Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
    `protected void` | `initInternal()` | Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
    `boolean` | `isAsyncSupported()` |
    `void` | `setAsyncSupported​(boolean asyncSupported)` |
    `void` | `setContainer​(Container container)` | Set the `Container` with which this instance is associated.
    `void` | `setNext​(Valve valve)` | Set the next Valve in the pipeline containing this Valve.
    `protected void` | `startInternal()` | Start this component and implement the requirements of `LifecycleBase.startInternal()`.
    `protected void` | `stopInternal()` | Stop this component and implement the requirements of `LifecycleBase.stopInternal()`.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.Valve

      `invoke`

- - ### Field Detail

    - #### sm

          protected static final StringManager sm

    - #### asyncSupported

          protected boolean asyncSupported

      Does this valve support Servlet 3+ async requests?

    - #### container

          protected Container container

      The Container whose pipeline this Valve is a component of.

    - #### containerLog

          protected Log containerLog

      Container log

    - #### next

          protected Valve next

      The next Valve in the pipeline this Valve is a component of.

  - ### Constructor Detail

    - #### ValveBase

          public ValveBase()

    - #### ValveBase

          public ValveBase​(boolean asyncSupported)

  - ### Method Detail

    - #### getContainer

          public Container getContainer()

      Description copied from interface: `Contained`
      Get the `Container` with which this instance is associated.
      Specified by:
        `getContainer` in interface `Contained`
      Returns:
        The Container with which this instance is associated or `null` if not associated with a Container

    - #### setContainer

          public void setContainer​(Container container)

      Description copied from interface: `Contained`
      Set the `Container` with which this instance is associated.
      Specified by:
        `setContainer` in interface `Contained`
      Parameters:
        `container` - The Container instance with which this instance is to be associated, or `null` to disassociate this instance from any Container

    - #### isAsyncSupported

          public boolean isAsyncSupported()

      Specified by:
        `isAsyncSupported` in interface `Valve`

    - #### setAsyncSupported

          public void setAsyncSupported​(boolean asyncSupported)

    - #### getNext

          public Valve getNext()

      Description copied from interface: `Valve`
      Returns the next Valve in this pipeline, or `null` if this is the last Valve in the pipeline.
      Specified by:
        `getNext` in interface `Valve`
      Returns:
        the next Valve in the pipeline containing this Valve, or `null` if this is the last Valve in the pipeline.

    - #### setNext

          public void setNext​(Valve valve)

      Description copied from interface: `Valve`
      Set the next Valve in the pipeline containing this Valve.
      Specified by:
        `setNext` in interface `Valve`
      Parameters:
        `valve` - The new next valve, or `null` if none

    - #### backgroundProcess

          public void backgroundProcess()

      Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.

      The default implementation is NO-OP.

      Specified by:
        `backgroundProcess` in interface `Valve`

    - #### initInternal

          protected void initInternal()
                               throws LifecycleException

      Description copied from class: `LifecycleMBeanBase`
      Sub-classes wishing to perform additional initialization should override this method, ensuring that super.initInternal() is the first call in the overriding method.
      Overrides:
        `initInternal` in class `LifecycleMBeanBase`
      Throws:
        `LifecycleException` - If the initialisation fails

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start this component and implement the requirements of `LifecycleBase.startInternal()`.
      Specified by:
        `startInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Stop this component and implement the requirements of `LifecycleBase.stopInternal()`.
      Specified by:
        `stopInternal` in class `LifecycleBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getObjectNameKeyProperties

          public java.lang.String getObjectNameKeyProperties()

      Description copied from class: `LifecycleMBeanBase`
      Allow sub-classes to specify the key properties component of the `ObjectName` that will be used to register this component.
      Specified by:
        `getObjectNameKeyProperties` in class `LifecycleMBeanBase`
      Returns:
        The string representation of the key properties component of the desired `ObjectName`

    - #### getDomainInternal

          public java.lang.String getDomainInternal()

      Description copied from class: `LifecycleMBeanBase`
      Method implemented by sub-classes to identify the domain in which MBeans should be registered.
      Specified by:
        `getDomainInternal` in class `LifecycleMBeanBase`
      Returns:
        The name of the domain to use to register MBeans.