Class ValveBase

All Implemented Interfaces:
MBeanRegistration, Contained, JmxEnabled, Lifecycle, Valve
Direct Known Subclasses:
AbstractAccessLogValve, AuthenticatorBase, CrawlerSessionManagerValve, ErrorReportValve, HealthCheckValve, 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
  • Field Details

    • 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 Details

    • ValveBase

      public ValveBase()
    • ValveBase

      public ValveBase(boolean asyncSupported)
  • Method Details

    • 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 String toString()
      Overrides:
      toString in class Object
    • getObjectNameKeyProperties

      public 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 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.