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
,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 aninvoke()
method to provide the required functionality, and MAY implement theLifecycle
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 logprotected Valve
next
The next Valve in the pipeline this Valve is a component of.protected static StringManager
sm
-
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
-
-
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()
Return the Container with which this Valve is associated, if any.java.lang.String
getDomainInternal()
Method implemented by sub-classes to identify the domain in which MBeans should be registered.Valve
getNext()
Return the next Valve in this pipeline, ornull
if this is the last Valve in the pipeline.java.lang.String
getObjectNameKeyProperties()
Allow sub-classes to specify the key properties component of theObjectName
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 Valve is associated, if any.void
setNext(Valve valve)
Set the Valve that follows this one in the pipeline it is part of.protected void
startInternal()
Start this component and implement the requirements ofLifecycleBase.startInternal()
.protected void
stopInternal()
Stop this component and implement the requirements ofLifecycleBase.stopInternal()
.java.lang.String
toString()
Return a String rendering of this object.-
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
-
-
-
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.
-
-
Method Detail
-
getContainer
public Container getContainer()
Return the Container with which this Valve is associated, if any.- Specified by:
getContainer
in interfaceContained
- Returns:
- The Container with which this instance is associated or
null
if not associated with a Container
-
setContainer
public void setContainer(Container container)
Set the Container with which this Valve is associated, if any.- Specified by:
setContainer
in interfaceContained
- Parameters:
container
- The new associated container
-
isAsyncSupported
public boolean isAsyncSupported()
- Specified by:
isAsyncSupported
in interfaceValve
-
setAsyncSupported
public void setAsyncSupported(boolean asyncSupported)
-
getNext
public Valve getNext()
Return the next Valve in this pipeline, ornull
if this is the last Valve in the pipeline.
-
setNext
public void setNext(Valve valve)
Set the Valve that follows this one in the pipeline it is part of.
-
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.- Specified by:
backgroundProcess
in interfaceValve
-
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 classLifecycleMBeanBase
- Throws:
LifecycleException
- If the initialisation fails
-
startInternal
protected void startInternal() throws LifecycleException
Start this component and implement the requirements ofLifecycleBase.startInternal()
.- Specified by:
startInternal
in classLifecycleBase
- 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 ofLifecycleBase.stopInternal()
.- Specified by:
stopInternal
in classLifecycleBase
- Throws:
LifecycleException
- if this component detects a fatal error that prevents this component from being used
-
toString
public java.lang.String toString()
Return a String rendering of this object.- Overrides:
toString
in classjava.lang.Object
-
getObjectNameKeyProperties
public java.lang.String getObjectNameKeyProperties()
Description copied from class:LifecycleMBeanBase
Allow sub-classes to specify the key properties component of theObjectName
that will be used to register this component.- Specified by:
getObjectNameKeyProperties
in classLifecycleMBeanBase
- 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 classLifecycleMBeanBase
- Returns:
- The name of the domain to use to register MBeans.
-
-